Diskuze: php a operátor čiarka
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 28 zpráv z 28.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ako sa použivá čiarka v céčku ?
mozna blbost ale nemysli \?
jako C:\\ ?
Čárka v jazycích C a C++ je operátor, který zajistí vyhodnocení výrazů na obou stranách, ale neurčuje pořadí vyhodnacení(zleva doprava/zprava doleva). Stejně to funguje např. i v JavaScriptu.
ano to vim, ale mohl se i spatne vyjadrit
Napíšeš příklad v JS?
Někaj nevím co máš na mysli...
Syntax operátora čiarky je jednoduchý – výraz: výraz1,
výraz2
Zpracocácá sa tak, že výraz1 sa vyhodnotí a je zabudnutý, potom
sa vyhodnotí výraz2 a to je vlastne záverečný výsledok po
použití výrazu s operátorom čiarky.
Príklad:
int i = 2, j = 4; /* toto nie je operátor čiarky */
j = (i++, i – j); /* toto už je, i bude 3 a j bude -1 */
Používa sa hlavne v cykloch.
"Operátor čárka má zcela jedinečnou funkci. Říká překladači udělej
tohle a tohle a tohle. To znamená, že se čárka používá pro zřetězení
několika operací.
V následujícím cyklu se čárka používá v inicializační části pro inicializaci dvou řídících proměnných cyklu a v části pro inkrementaci i a j."
for(i=0, j=0; i+j<pocet; i++, j++) .......
int i, sum;
for ( i = 1, sum = 0; i<=11; sum +=i, i++)
;
Hlavní využití má u cyklů, jak psal Libor Šimo (libcosenior) .
Vrátim sa k pôvodnej otázke.
Po pár testoch som si overil, že operátor čiarka v php pracuje ako v
céčku.
Príklad:
$x = $_POST['cislo1'];
for ( $x, $sucin = 1; $x <= 10; $x += 2){
$sucin *= $x;
echo("$sucin<br />");
}
Pri vstupe 3 je výsledok
3
15
105
945
Na tomhle je ta čárka zrovna k ničemu, protože $x je už před cyklem.
Tak iný príklad:
$i = 0;
for ( ; $i<11; printf("%d<br />",$i), $i++)
;
Hlavne že viem, že to funguje a v prípade potreby sa to dá použiť.
Odpovedám na toto:
"Na tomhle je ta čárka zrovna k ničemu, protože $x je už před cyklem."
mohlo to byť takto:
for ( $x = 3, $sucin = 1; $x <= 10; $x += 2){
$sucin *= $x;
echo("$sucin<br />");
}
Už je to v poriadku?
Ani by som to nebol začal riešiť tu na fóre, ale jeden príklad mi proste nefunguje a normálne by mal (v céčku ide):
$i = 2;
$j = 4;
$j = ($i++, $i – $j);
echo("$i, $j");
Fakt to nechápem.
Hovorí sa:
"Proti gustu žiadny dišputát."
Ale nechápem, prečo som dostal dva mínusy za predchádzajúci príspevok, v
ktorom som vysvetlil, prečo som to tu vlastne riešil.
Že by som tým niekoho urazil?
Skôr som čakal od tých, čo sa smiali operátoru čiarka, že aspoň uznajú
chybu.
Bolo by to prinajmenšom spravodlivé.
Nějak jsem nepochopil v čem je lepší
$j = ($i++, $i – $j);
než toto, což je přehlednější
$i++;
$j = $i – $j;
?
Ono je to vlastne jedno, kompilátor to asi preloží úplne rovnako, chcel
som len vedieť, či sa to dá aj takto použiť v php.
To je všetko.
Každopádne si veľmi rozmyslím, kedy a či vôbec použijem túto techniku
v nejakom programe.
A úplne posledná vec k tejto téme.
Každému sa môže stať, že pri analýze programu od niekoho iného narazí
na takúto časť kódu a nebude vedieť o čo ide.
Preto je dobré vedieť, že také niečo existuje.
Mrzí ma, ak sa to čo tu bolo popísané niekomu protivilo. Ospravedlňujem
sa.
Otázka je vyriešená, prosím zamknúť vlákno.
Nevím jak je ta správná syntax, PHP jsem viděl jen z rychlíku každopádně díky
Můžeš napsat tyto dva zápisy:
$i++
++$i
V tomto použití jaké psal on
$j = ++$i – $j;
Ti $i++ nebude fungovat.
Ne, to nebude. Jen jsem psal, že může použít oba zápisy.
Zobrazeno 28 zpráv z 28.