Alternativy pro zvyšování a snižování hodnot

Programovacie jazyky, rady, poradňa...
$HD_DaDo_Ts
Medium Expert
Medium Expert
Príspevky: 85
Registrovaný: 24 aug 2010, 11:08

Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa $HD_DaDo_Ts »

U libovolné proměnné můžete určit, že se její hodnota má o jedničku zvýšit nebo snížit. Podívejte se na příklady:
Zkrácený zápis Co se děje s hodnotou
++$hodnota Příkaz zvyšuje hodnotu proměnné o 1 a vrací zvýšenou hodnotu.
$hodnota++ Vrací hodnotu a pak zvyšuje hodnotu proměnné o 1.
--$hodnota Sníží hodnotu proměnné o1 a vrací sníženou hodnotu.
$hodnota-- Vrací hodnotu a pak snižuje hodnotu proměnné o 1.
$hodnota = $hodnota + 1 Zvýší hodnotu proměnné o 1.
$hodnota += 1 Zvýší hodnotu proměnné o 1.
Příklad:

Kód: Vybrať všetko

$promenna = 0; // proměnná se zatím rovná 0
if($promenna == 0) // když se proměnná rovná 0
{
++$promenna; // k proměnné se přidá 1 a proměnná už vrací zvýšenou hodnotu
$promenna++; // proměnná vrací hodnotu a pak zvyšuje hodnotu o 1 takže promenna se nyní rovná 2
// podobně pracují i další možnosti uvedené výše
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa audiotrack »

dobre, a čo

Kód: Vybrať všetko

echo $hodnota++ + ++$hodnota;
V akom poradí sa vyhodnocuje? Prečo nedostaneš rovnaký výsledok ako

Kód: Vybrať všetko

$hodnota+=1 + ++$hodnota
A ani tam nemáš nič napísané o efektivite, či je lepšie použiť v prípade, že chcem $hodnota = $hodnota + 1; použiť ++$hodnota alebo $hodnota++ v prípade že v tom istom riadku už hodnotu nepotrebujem (až niekde neskôr)
Tento tvoj príspevok nič nikomu nedá, a zrejme sám nevieš o moc viac ako si sa dočítal niekde na nete

(ja to viem, nepotrebujem aby si mi písal odpoveď len narážam na to že dôležité veci si nespomenul a triviálnosti napíšeš)

//edit: navyše si ani nespomenul, že toto je možné iba pri jazykoch založených na céčkovej syntaxi (php, c, c++, java, javascript..). V tvojej konkrétnej ukážke php. V takom delphi a iných ti to nefunguje, lebo je to "syntaktický cukor"
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa chrono »

Minimálne v Php bude ten $a++ zápis mierne rýchlejší ako $a += 1 (a o dosť rýchlejší ako $a = $a + 1). Pre obe tie možnosti sa použije len jeden opcode, ale pri tom prvom tvare sa nemusí kontrolovať (a prípadne meniť) typ toho druhého parametra (teda čísla 1). Každopádne rozdiel bude asi dosť malý a pri bežných skriptoch bude čas potrebný na vykonanie oveľa menší, ako čas potrebný na rozparsovanie toho php kódu (teda ak sa nepoužije eAccelerator, či niečo podobné), takže celkový zisk bude takmer zanedbateľný.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa audiotrack »

chrono ja som hovoril o variantoch $hodnota++ vs ++$hodnota.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa chrono »

Tie sú v PHP rovnako rýchle/pomalé, pretože pre každú verziu je tam vlastný opcode a pri tak jednoduchom zápise je asi len otázkou preferencie, čo sa použije (ja všade používam a++, ale dosť často ľudia zase používajú ++a, čo je asi logickejšie).
$HD_DaDo_Ts
Medium Expert
Medium Expert
Príspevky: 85
Registrovaný: 24 aug 2010, 11:08

Re: Alternativy pro zvyšování a snižování hodnot

Príspevok od používateľa $HD_DaDo_Ts »

ale šak to je iba premena...
Napísať odpoveď