[php] co to znaczy =!


(pain3hp) #1

Pisząc popełniłem błąd i chcąc zanegować równość napisałem =!, kod został zaakceptowany i długo myślałem że jest OK. Natomiast dzisiaj zauważyłem pewien problem bo zawsze gdy przechodził ten kod

if( ($_SESSION['zalogowany']) && ($_SESSION['id_druzyny']=!0) )

{

//kod

}

to $_SESSION['id_druzyny'] z zera zmieniała sie na 1

3 godziny stracone na szukanie błędu... chcialbym sie chociaz dowiedziec o co w tym chodzi :expressionless:

dzieki


(Copycona) #2

Zaczynając od początku, = jest operatorem przypisania http://www.php.net/manual/pl/language.operators.assignment.php. !0 oznacza negację 0 (automatycznie rzutowane na typ logiczny false, gdyż liczb nie da się), a z tego wychodzi true (1) http://ideone.com/Zdq7s – to właśnie przypisałeś do $_SESSION['id_druzyny']. Cały warunek (przypisanie do zmiennej prawdy) także zwraca prawdę http://ideone.com/PWI4R, skutkiem czego wykonał się kod zawarty w bloku.


(pain3hp) #3

ciekawe, dzięki