Autor | Zpráva | ||
---|---|---|---|
Shane Profil |
#1 · Zasláno: 10. 5. 2009, 01:57:49
Ahoj,
našel jsem tady na diskusi krátký kód, který vypíše tři čísla v rozmezí od jedničky do desítky bez toho, že by se opakovala. Snažím se pochopit, jak funguje. Vysvětlil byste mi prosím někdo, co přesně se děje v čtvrtém řádku kódu? :) Případně poupravil můj výklad těch tří předchozích. Děkuju. $r = range (1,10); // pole r se naplní čísly 1 až 10 shuffle ($r); // hodnoty v poli r se náhodně zpřehází for ($j = 1; $j <= 3; $j++) // určím, kolikrát se má proces uskutečnit echo $r[$j-1] . " "; // ? |
||
jrm Profil |
#2 · Zasláno: 10. 5. 2009, 08:00:14
Vypíše se indexovaná proměnná $r s indexem ($j-1) a mezera. Chybí ENDFOR. Index proměnné začíná nulou, proto ($j-1).
|
||
Alphard Profil |
#3 · Zasláno: 10. 5. 2009, 08:59:22
jrm:
„Chybí ENDFOR“ Nechybí. Není zde for():, takže endfor není nutné (bylo by dokonce špatné a hodilo by to parse error). |
||
jrm Profil |
#4 · Zasláno: 10. 5. 2009, 10:13:57
Alphard
ok - už to vidím :-D |
||
AM_ Profil |
#5 · Zasláno: 10. 5. 2009, 10:41:15
V poli $r máš náhodně zpřeházená čísla 1-10, takže to vypíše první tři z nich - tím se předchází opakování.
Zápis cyklu je trochu kostrbatý, já bych to psal takhle: for ($j = 0; $j < 3; $j++) // určím, kolikrát se má proces uskutečnit echo $r[$j] . " "; // vypíšu j-té číslo z náhodně seřazené řady Zřejmě to psal nějaký pascalista, kteří jsou zvyklí indexovat od 1, ale v PHP a dalších jazycích stavěných na indexování od 0 to je matoucí. |
||
Časová prodleva: 15 let
|
0