[php] co to znaczy =!

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

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.

ciekawe, dzięki