WODZU
(WODZU)
21 Luty 2007 18:57
#1
Witam
Jestem początkujący w PHP. Czy ktoś może mi wyjaśnić dlaczego PHP w poniższym kodzie nie wykonuje kodu zawartego w instrukcji warunkowej if?
<?php
$a = 2;
$b = NULL;
$c = 7;
if (($a || $b || $c) == NULL)
{
echo 'ktoras z wartosci jest NULL';
}
?>
kutar
(Kutar 0)
21 Luty 2007 19:02
#2
if ($a == NULL || $b == NULL || $c == NULL)
kubar3k
(Kubarek)
21 Luty 2007 20:35
#4
if (($a || $b || $c) == NULL)
najpierw sprawdza, czy jedna ze zmiennych $a, $b, $c istnieje/jest typu boolean i wynosi true/jest typu string i zawiera w sobie jakiś tekst/jest typu integer i zawiera liczbę > 0/etc.
oczywiście całe wyrażenie jest prawdą, bo zarówno $a jest >0, jak i $c jest > 0
a prawda z reguły raczej nie równa się NULL
droop
(Droop)
22 Luty 2007 13:49
#6
($a || $b || $c)
|| to jest logiczne or (alternatywa) u ciebie nie chodzi tu o or tylko o and (koniunkcja) czyli && czyli przyklad
<?php
$a = 2;
$b = NULL;
$c = 7;
if (($a && $b && $c) == NULL)
{
echo 'ktoras z wartosci jest NULL';
}
?>
jesli nie znasz sie na logice to link z googli Logika
kubar3k
(Kubarek)
22 Luty 2007 16:52
#7
tak, pomylilem się, mea culpa