Autor | Zpráva | ||
---|---|---|---|
Peet Profil |
Dobrý den,
používám tuto zkrácenou podmínku pro testování isset() a dlouho jsem byl spokojen, ale nyní jsem zjistil, že vrátí null IKDYŽ je hodnota rovna 0 @$var ?: null; měl jsem za to, že zavináč zasupuje isset.. ale není tomu tak. Neví někdo jak bych mohl podmínku upravit aby byla opravdu isset, ale aby byla takto zkrácená ? isset($var) ? $var : null; je moc dlouhé, díky :) |
||
Taps Profil |
Peet:
@ nezastupuje isset. Pomocí @ potlačuješ chybové hlášky, která se může vyskytnout Níže uvedený zápis by měl korektně fungovat <? isset($var) ? $var : null; ?> |
||
Joker Profil |
#3 · Zasláno: 26. 5. 2015, 13:47:15
Peet:
„nyní jsem zjistil, že vrátí null IKDYŽ je hodnota rovna 0“ Pro úplnost ještě dodám, že: 1. Operátor zavináče (potlačení chybových hlášek) by se pokud možno neměl používat, resp. jeho použití je opodstatněné jen výjimečně. 2. Ten původní kód vedle hodnoty 0 vrátí null i v dalších případech, konkrétně tady: php.net/manual/en/types.comparisons.php - první tabulka (Comparisons of $x with PHP functions) a poslední sloupec (boolean : if($x)) ve všech případech, kde je napsáno FALSE. V té tabulce je i celkem přehledně vidět rozdíl oproti isset. |
||
Časová prodleva: 9 let
|
0