Как php лидирует логические переменные?

Как php лидирует логические переменные?

Я пытался сохранить логическое значение в массив:

$result["Users"]["is_login"] = true; 

но когда я использую debug, значение is_login пустое. и когда я выполняю условные обозначения:

 if($result["Users"]["is_login"]) 

условия всегда ложные.

Затем я попытался сделать это:

 $result["Users"]["is_login"] = "true"; 

и это сработало.

Это не очень много, но когда я возвращаю логические значения из функций, мне все равно нужно преобразовать их в строки.

Related of "Как php лидирует логические переменные?"

нет броска

 if($result["Users"]["is_login"]) 

должно сработать. вы можете попробовать использовать var_dump($result["Users"]["is_login"]); чтобы убедиться, что переменная установлена ​​правильно.

вы можете проверить, установлена ​​ли переменная с помощью функции isset ( manual ).

Также вы можете найти здесь, как PHP оценивает логические значения:

 When converting to boolean, the following values are considered FALSE: the boolean FALSE itself the integer 0 (zero) the float 0.0 (zero) the empty string, and the string "0" an array with zero elements an object with zero member variables (PHP 4 only) the special type NULL (including unset variables) SimpleXML objects created from empty tags Every other value is considered TRUE (including any resource). 

В вашем примере не происходит кастинг.
Ваша проблема, вероятно, где-то в другом месте.

Не могли бы вы поделиться более полным кодом?

Пытаться:

 if((bool)$result["Users"]["is_login"] == true) { // do something } 

,

И ответьте на одно из ваших столкновений:

но когда я использую debug, значение is_login пустое. и когда я выполняю условные обозначения:

 if($result["Users"]["is_login"]) 

так как ваше возвращаемое значение является логическим значением true , в PHP у него нет представления для него, поэтому они выглядят пустыми (главное, если значение является логическим значением false , тогда вы увидите 0