| Autor | Zpráva | ||
|---|---|---|---|
| Mufna Profil |
Zdravím Vás. Mám 2 vlastní funkce, první má vrátit pole $pole, druhá pak má toto pole přijmout jako argument a dále se s prvky tohoto pole uvnitř druhé funkce pracuje. Bohužel mi to ale takto nefunguje, vypadá to, že se to pole "ztratí" a ta druhá funkce už "o něm neví". Dá se to nějak řešit ? Mám to v kostce takto:
function funkce_1() {
$pole = array(0=>0, 1=>0, 2=>0, 3=>0); // prvotní definování pole
// nyní se s prvky pole pracuje, každý z nich může (nemusí) změnit hodnotu z 0 na 1.
var_dump($pole); // když si to tady vypíšu, tak je vše OK, tzn. vypíše se pole s případnými změněnými hodnotami prvků
return $pole;
}
function funkce_2($pole) {
var_dump($pole); // a tady už mi to vyhodí pouze NULL
// pokračuje zpracování, které potřebuje jednotlivé prvky pole $pole
}v kódu se pak samozřejmě obě funkce volají za sebou v pořadí: funkce_1(); funkce_2($pole); |
||
| Alphard Profil |
#2 · Zasláno: 21. 1. 2011, 23:21:39
Pochopitelně, že se ztratí. Konstruktci
$promenna = funkce(); neznáte?
Můžete to spojit, tj. funkce_2(funkce_1());
|
||
| Mufna Profil |
#3 · Zasláno: 21. 1. 2011, 23:30:36 · Upravil/a: Mufna
Alphard
Konstruktci $promenna = funkce(); neznáte? Bohužel ne. Ale navádíte mě šikovně, akorát zatím úplně přesně nevím jak to mám použít. Můžete mě ještě trošku popostrčit konkrétněji ? Předem díky. EDIT Myslím, že už to snad chápu |
||
| Lamicz Profil |
#4 · Zasláno: 22. 1. 2011, 01:46:34 · Upravil/a: Lamicz
$a = array(); $a = funkce_1(); funkce_2($a); |
||
| AM_ Profil |
#5 · Zasláno: 22. 1. 2011, 11:47:11
Lamicz:
> $a = array(); - tenhle řádek je zbytečný, vždyť na dalším řádku tu hodnotu znovu přepíšeš, nemusíš ji inicializovat > $a = funkce_1(); > funkce_2($a); |
||
| DoubleThink Profil * |
#6 · Zasláno: 22. 1. 2011, 13:20:07
Mufna:
Alphard ti jen naznačuje, že pole z první funkce vracíš do nikam. |
||
| Lamicz Profil |
#7 · Zasláno: 22. 1. 2011, 13:31:16
AM:
Já toto používám pro přehlednost kódu, že "bacha, $a je typ pole". Beru to něco jako definici typu proměnné. |
||
| DoubleThink Profil * |
#8 · Zasláno: 22. 1. 2011, 13:48:10
Lamicz:
A komu to "bacha" říkáš? PHP má slabou typovou disciplínu. |
||
| AM_ Profil |
#9 · Zasláno: 22. 1. 2011, 18:46:10
Lamicz:
slyšel jsi někdy o PhpDocumentoru? /**
* Some example function
*
*@return array
*/
function funkce_1() { ... }inteligentní IDE z tohoto dokonce pochopí, že $a je array. |
||
| Lamicz Profil |
#10 · Zasláno: 22. 1. 2011, 21:33:17
AM:
Ano, i jsem v něm přes rok ve firmě dělal, ale teď dělám na projektu, kde to není ;) |
||
|
Časová prodleva: 15 let
|
|||
0