Autor Zpráva
Luky029
Profil *
Ahoj, asi blbej dotaz ale je v tom rozdil??


if($neco)... vs. if(isset($neco)...
GeneralDv
Profil
IsSet vyhoví když je proměnná k dispozici.
H13
Profil
... a na rozdíl od prvního isset nevyhodí Notice o tom, že proměnná není definovaná když definovaná není.

První podmínku použiješ v případě, že máš proměnnou, která je TRUE nebo FALSE

Druhou v případě, že se ptáš jestli proměnná byla definována

a nebo kombinaci:

if(isset($neco) && $neco) {
then ...
}

Pokud $neco existuje a je TRUE pak ...

Také se dá použít empty() ...
mckay
Profil
Luky029:
Já pro lepší zapamatování mám isSet spojené s tím, že kontroluji, jestli proměnná existuje. Zatím jsem nikdy na tu funkci díky té "existenci" nezapomněl, třeba ti to také pomůže.
Nox
Profil
ad H13
Záleží na tom co přesně potřebuješ, koukni na http://cz.php.net/manual/en/types.comparisons.php
Koukám že if($neco) je přesně to stejné jako if(!empty($neco)) .... jen škaredější :)
(osobně jsem čekal že tam bude nějaká drobná odchylka, no...překvápko)
Luky029
Profil *
diky
AM_
Profil
IF samo o sobě kontroluje, jaká je hodnota výrazu v závorce přetypovaná na boolean. Např. u čísel 0=false, cokoli jiného=true, podobně pole: prázdné=false, jinak true. takže:
if(5) - podmínka vyhovuje
if(array()) - podmínka nevyhovuje.
if ovšem nekontroluje existenci proměnné, takže pro korektní vyhodnocení proměnné, o které nevíme, jestli existuje, použijeme isset (true pokud existuje) nebo empty (true pokud neexistuje nebo obsahuje hodnotu ekvivalentní false). Takže:

$neco = 0;
if (isset($neco)) { echo "ano, sem se to dostane, promenna \$neco existuje"; }
if ($neco) { echo "sem se to nedostane, protoze \$neco === 0 == false"; }
blizzboz
Profil
isSet() vráti hodnotu true ak bola definovaná premená, if($nieco) sa vyhodnotí ako true za podmienky že premenná nemá hodnotu NULL, 0 alebo false, ak $nieco nebola definovaná skript vyhodí chybu.
Joker
Profil
blizzboz:
if($nieco) sa vyhodnotí ako true za podmienky že premenná nemá hodnotu NULL, 0 alebo false
...nebo třeba prázdný řetězec...
Lepší je říct, že if(výraz) je splněno v případě, že se výraz vyhodnotí jako true.

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: