Autor | Zpráva | ||
---|---|---|---|
rexi Profil * |
#1 · Zasláno: 22. 2. 2012, 19:29:46
Zdravim,
mám funkci: function fact($number) { if ($number > 0) { return $number*fact(--$number); } else { return 1; } } s --$number to vrátí 0, s ($number - 1) to vrátí dobrý výsledek. Zajímalo by mě, proč, proč nefunguje predekrementace, to že nefunguje $number-- to je jasný, ale neleze mě do hlavy proč nefunguje --$number. Díky :) |
||
Keeehi Profil |
Protože ta predekrementace zmenší i to první $number na řádku.
Pokud by jsi chtěl použít predekrementaci, šlo by to takto: function fact($number) { if ($number > 0) { $cur = $number; return $cur*fact(--$number); } else { return 1; } } |
||
Časová prodleva: 11 let
|
0