2016-11-16 6 views
-1

Может кто-нибудь объяснить, что здесь происходит:Logic, если оператор с номерами PHP

if(2 && 5 < 4) 

Если у меня есть, например

$x = 2 && 3; 

и var_dump ($ х) это дает логическое значение (истина) независимо от того, какие цифры. Но здесь это похоже, что цифры сравниваются с 4 по одному.

+1

«var_dump ($ x) он дает логическое значение (true) независимо от того, какие числа« нет ». Если одно из значений ложно, дамп также будет ложным. – PeeHaa

+1

Вот информация о том, что происходит: http://php.net/manual/en/language.types.boolean.php –

ответ

2

Посмотрите на таблицу сравнения PHP для PHP http://php.net/manual/en/types.comparisons.php

Для целых ряд отличных 0 возвращает верных в сравнении.

if (2 && 5 < 4) => if (true && false) => false 

$x = 2 && 3 = 1 && 1 = 1 

потому что, если переменная имеет целочисленное значение, истина становится 1 из-за преобразования типа.