[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Логика if ()
J1upuk
Ребята, объясните пожалуйста что и при каких обстаятельствах возвращает переменная(массив) помещённые в оператор if() без какой либо функции (empty(), isset())? с empty, isset, оператором сравнения == и жесткого сравнения === всё понятно, для всего этого есть таблицы возвращаемых значение, а если например if ( $_GET['i'] ) или if ( $var )?
J1upuk
Нашел ответ, может кому-то будет полезно:
При преобразовании в boolean, следующие значения рассматриваются как FALSE:

само значение boolean FALSE
integer 0 (ноль)
float 0.0 (ноль)
пустая строка, и строка "0"
массив без элементов
объект без полей (только для PHP 4)
особый тип NULL (включая неустановленные переменные)
Объекты SimpleXML, созданные из пустых тегов

Все остальные значения рассматриваются как TRUE (включая любой resource).

Внимание

-1 рассматривается как TRUE, как и любое другое ненулевое (отрицательное или положительное) число!



<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>

Invis1ble
if ($var) идентично if ($var == true)

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

stump
Грамотно писать
if(true == $var)
или
if(true === $var)
if($var)
это краткая запись которую не рекомендуется использовать новичкам и в ответственных алгоритмах.

_____________
Трус не играет в хокей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.