Portál AbcLinuxu, 9. května 2025 23:54

Dotaz: PHP - Inicializace var

11.11.2014 16:38 Mathias
PHP - Inicializace var
Přečteno: 203×
Odpovědět | Admin
Ahoj, kontroluji proměnnou "$var" zda je číslo pomocí "is_int()"; ale nevím co nastavit, "$var", když nechci podmínku vykonat, je správné nastavit $var = null ? Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Tarmaq avatar 11.11.2014 16:45 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus ukazat kus kodu. Z toho popisu se dost blbe pozna co vlastne chces. Chapu to spravne tak, ze potrebujes inicializovat promennou, do ktere se nekde o par radku dal muze dotahnout hodnota? V takovem pripade je inicializace na null pravdepodobne spravna, ale ukaz radsi ten kod..
Don't panic!
11.11.2014 16:45 kozzi
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Odpovědět | | Sbalit | Link | Blokovat | Admin
zalezi co presne chce kontrolovat, pokud chces opravdu jen znat typ tak ano, is_int je ok a nastaveni $var na null je v poradku. Polud ale chces zjistit zda $var obsahuje nejake cislo tak pozor na to ze is_int("123") ti vrati false, potom je treba pouzit is_numeric("123")
11.11.2014 17:07 Mathias
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky chlapy, jedná se mi pouze o inicializaci proměnné, abych nemusel psát podmínku i s existencí $var, čili
if(isset($var) && is_num($var))...
ale jen
if(is_num($var))...
Později se může proměnná $var opravdu naplnit číslem.

PS: jak to, že vrací při 123 false ? chyba php ?
11.11.2014 17:33 kozzi
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Pokudmas namysli to is_int, tak je potreba si uvedomit co ta funkce dela. Ona jen overuje typ promene, neresi jeji hodnotu. to znamena ze is_int("5") vrati false, protoze "5" je typu retezec, kdezto is_int(5) vrati true jelikoz 5 je ciselna hodnota typu integer. Takze pokud potrebujes opravdu overovat hodnotu zda je cislo a ne typ. Tak pouzij is_numeric, ten ma ale zase nevyhodu ze ti tim projde napriklad i desetine cislo atd. Osobne pouzivam na kontrolu regularni vyrazy.
11.11.2014 17:38 Mathias
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Čili tohle je dobře
$var = 123;
if(is_num($var) === true) echo "true";
// true
a tohle špatně
$var = "123";
if(is_num($var) === true) echo "true";
else echo "false";
// false
Pochopil jsem to? Díky
11.11.2014 17:50 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Špatně je obojí. Konstanty false a true se používají jen výjimečně.
$var = "123";
if (is_numeric($var))
    echo "Je číslo";
else
    echo "Není číslo";
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
kozzi avatar 12.11.2014 00:37 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Inicializace var

Tak tady bych si dovolil tvrdit, ze lzes :). Spatne to neni, a je to spis subjektivni a ba naopak je pouzivani konstant false a true vcelku dobrej napad. Samozrejme v pripade pouziti trech rovnitek, jinak jsou nadbytecne. Ale znam spoustu lidi, kteri preferuji provnani s false nez negaci a opacne

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
kozzi avatar 12.11.2014 00:41 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: PHP - Inicializace var

to ze lzes je mozna prilis, spis prehanis by bylo vhodnejsi :)

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
12.11.2014 06:29 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Ani neznám funkci is_num(), takže určitě nelžu :-)
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 12.11.2014 02:38 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Inicializace var
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ujisti se, že tam bude vždy buď číslo, nebo null. Pak stačí kontrolovat nastavení na null pomocí trojitého rovnítka. Jinak ano, null je k tomuto účelu vhodný.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.