Autor Zpráva
Shane
Profil
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
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
jrm:
Chybí ENDFOR
Nechybí. Není zde for():, takže endfor není nutné (bylo by dokonce špatné a hodilo by to parse error).
jrm
Profil
Alphard
ok - už to vidím :-D
AM_
Profil
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í.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0