PHP & databáze

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Dobrý den,
prosím vás koukám na základy PHP a nechápu tento příklad.

Kód: Vybrat vše
$c = 1;
while($c<101){
echo($c . " ");
$c++;
}



Mělo by to vypsat všechny číslice od 1 až do 100. Ale proč je tam $c." " ? Proč tam není jen $c? A jinak jak to že je $c++ až na konci?
Vím, že tyto otázky jsou asi trapné, ale chtěl bych chápat podstatu již od začátku.

Díky
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

basti
WD Trader: 4.5/5

Příspěvky: 352
Registrace: 21.11.2011
přeloženo do češtiny:

1) nastav c na jedničku
2) pokud je c menší jak 101, dělej:
3) vypiš hodnotu c a přidej mezeru (to aby se mi čísla nevypsaly bez mezer jako 12345... ale 1 2 3 4 5...), tečka funguje jako spojování řetězců
4) zvyš c o jedna
5) vrať se na začátek cyklu

Drago
Uživatelský avatar
WD Trader: 4/5

Příspěvky: 966
Registrace: 10.11.2010
echo ($c ." "); znamená že se má při výstupu spojit řetězec s obsahem proměnné $c a " " (mezerou).
Pokud by tam nebyla ta mezera tak se ti to spojí do jendoho řetezce: 1234567891011... v podstatě tam ty čísla rozděluje.

$c++ je v podstatě $c = $c + 1; znamená že se má k proměnné c přičíst jednička. Kdyby jsi to dal před výstupem tak by to nefungovalo jak má, protože by jsi c nejdřív zvětšil a pak teprve zobrazil. Zkus si obě varianty. Uvidíš rozdíl sám :)

enr
WD Trader: N/A/5

Příspěvky: 2
Registrace: 10.10.2012
peeeeta píše:
Dobrý den,
prosím vás koukám na základy PHP a nechápu tento příklad.

Kód: Vybrat vše
$c = 1;
while($c<101){
echo($c . " ");
$c++;
}



Mělo by to vypsat všechny číslice od 1 až do 100. Ale proč je tam $c." " ? Proč tam není jen $c? A jinak jak to že je $c++ až na konci?
Vím, že tyto otázky jsou asi trapné, ale chtěl bych chápat podstatu již od začátku.

Díky

$c //proměnná C obsahuje číslo 1
. // slouží k spojování řetězců
" " // mezera mezi čísly
z toho plyne že ti to vypisuje 1 2 3 4 5 6 7 8 až 100
pokud by zápis vypadal následovně: echo $c; tak by ti to vypsalo: 12345678 až 100

$c++ //inkrementace proměnné $c, tedy zvětšení čísla o jedničku
protože ten kod se vypisuje jako když čteš knižku z leva doprava z hora dolu

1) proměnná $c obsahuje 1, když podmínka v cyklu while je pravdivá což je ( $c je menší než 101)
tak se vypíše echo $c . " "; //vypíše se 1
$c++ //zvětší hodnotu o 1

2) proměnná $c obsahuje 2, když podmínka v cyklu while je pravdivá což je ($c je menší než 101)
tak se vypíše echo $c . " "; //vypíše se 2
$c++ //zvětší hodnotu zase o 1

3 ) poměnná $c obsahuje 3, když podmínka v cyklu while je pravdivá což je ($c je menší než 101)
tak se vypíše echo $c . " "; //vypíše se 3
$c++ // zvětší hodnotu zase o 1

no a takto to pokračuje furt dokola dokud podmínka v cyklu while nebude pravdivá

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Napřed chci poděkovat všem :)
Jinak spojovací výraz "." (tečku jsem znal) ale nevěděl jsem zdali ta mezera má nějaký hlavní význam a ona je tam jen na oddělení čísel.

Jinak s while se teprve seznamuji. A mohu se ještě zeptat to když dám $c++ (to znamená, že se znovu provede celý tento kód
Kód: Vybrat vše
$c = 1;
while($c<101){
echo($c . " ");
$c++;
}
a pokaždé bude $c o 1 větší až do doby než bude větší než 101. Jelikož mi trochu nejde do hlavy mám nějakou podmínku a poté se mi vypíše $c. Ale když tam mám $c++ (připočte 1), tak že není nikde napsáno, že se má stát znovu podmínka, ale s novým $c.
To už je dané?
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

basti
WD Trader: 4.5/5

Příspěvky: 352
Registrace: 21.11.2011
Cyklus while se opakuje dokuď je splněna podmínka (cyklus s podmínkou na začátku). Takže vyhodnotí se podmínka, profrčí se tělo cyklu, skočí to zase na začátek cyklu, zkontroluje podmínku atd...

Na začátku nastavíš $c na jedna, protože jinak by nebylo definované a nastal by průšvih. Podmínka je splněna, cyklus se pustí.

V rámci cyklu musíš $c (podmínku) měnit, pokud by se při každém průchodu cyklem $c nezvětšilo, byl by cyklus nekonečný. Jak psal Drago, $c++; je zkrácený zápis tohoto $c = $c + 1; - takže provedeš příkaz v cyklu (vypíšeš $c) a pak ho zvětšíš o jedna. Kdybys to dělal opačně, tak by to vypsalo až od dvojky.

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
basti píše:
Cyklus while se opakuje dokuď je splněna podmínka (cyklus s podmínkou na začátku). Takže vyhodnotí se podmínka, profrčí se tělo cyklu, skočí to zase na začátek cyklu, zkontroluje podmínku atd...

Na začátku nastavíš $c na jedna, protože jinak by nebylo definované a nastal by průšvih. Podmínka je splněna, cyklus se pustí.

V rámci cyklu musíš $c (podmínku) měnit, pokud by se při každém průchodu cyklem $c nezvětšilo, byl by cyklus nekonečný. Jak psal Drago, $c++; je zkrácený zápis tohoto $c = $c + 1; - takže provedeš příkaz v cyklu (vypíšeš $c) a pak ho zvětšíš o jedna. Kdybys to dělal opačně, tak by to vypsalo až od dvojky.



To s tím $c++ jsem pochopil a je to chytré. To že kdybych to udělal opačně, že by se vypsala 2 jsem také pochopil. Jen jsem nevěděl, že příkaz "while" funguje tak, že se spustí dokud je podmínka platná. Díky moc to jsem právě potřeboval vědět, díky čemu se ten cyklus opakuje (domníval jsem se, že kvůli $c++, ale říkal jsem si to přeci je jen na zvětšení o +1). Teď už vím jak to funguje ;)

Ale ještě je toho dost co nevím :D
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

Pro plnohodnotné využívání fóra, vč. psaní příspěvků se musíte registrovat nebo se přihlásit.
Registrovat se nebo Přihlásit se