Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 1. 1. 2009, 18:48:49
Zdravím,
prosim poraďe, proč mi fce nevrací hodnotu: Potřebuji rekurzivni fci, která se opakuje, dokud není splněna podmínka, když je podmínky dosaženo, má vrátit hodnotu. Přes echo přímo ve fci ji vypíše správně , ale už ji nepředá příkazem return. V čem je problém? Zjednodušený příklad: <? function vrat_se($id) { (int)$id; $id--; if ($id > 20) { echo "<br>id =".$id ; vrat_se($id); } else { $vysledek = $id; echo "<br> echo ve fci vysledek = ".$vysledek; return $vysledek; } } $vysledek_fce = vrat_se(30); echo "<br> echo ve scriptu vysledek = ".$vysledek_fce ; ?> vypíše: id =29 id =28 id =27 id =26 id =25 id =24 id =23 id =22 id =21 echo ve fci vysledek = 20 echo ve scriptu vysledek = Předem díky. |
||
koudi Profil |
#2 · Zasláno: 1. 1. 2009, 19:11:01 · Upravil/a: koudi
(int)$id je celkem nesmysl. A řádek 10 by měl vypadat return vrat_se($id);
|
||
Nox Profil |
#3 · Zasláno: 1. 1. 2009, 20:00:19
Možná chtěl napsat $id = (int)$id;
|
||
koudi Profil |
#4 · Zasláno: 1. 1. 2009, 20:03:42
Nox
Ale nenapsal :) |
||
DJ Miky Profil |
#5 · Zasláno: 1. 1. 2009, 21:41:48 · Upravil/a: DJ Miky
Na devátém řádku si změň
vrat_se($id); return vrat_se($id); |
||
nethor Profil |
#6 · Zasláno: 1. 1. 2009, 22:29:42
$id = (int)$id; - jj. moje chyba.
Po opravě return vrat_se($id); funguje. Díky. |
||
Časová prodleva: 16 let
|
0