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: 13 let
|
0