установка переменных с помощью логического ИЛИ - PullRequest
3 голосов
/ 12 декабря 2011
$db_hased_pw = $result["password"] || false;

Я понимаю использование этой строки кода, но КОГДА она будет оцениваться как ложная?

будет $db_hased_pw равным false только тогда, когда $result["password"] не определено?

или для $db_hased_password установлено значение false, если $result["password"] не установлено, или false, или ноль, или ноль?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Значение будет равно false, когда $result["password"] является «ложным значением».Страница на empty описывает эти значения.

Они будут эквивалентны:

$db_hased_pw = !!$result["password"];
$db_hased_pw = (bool) $result["password"];

Если $result["password"] действительно может быть неопределенным, вы должны использовать:

$db_hased_pw = !empty($result["password"]);

, чтобы избежать уведомления.

1 голос
/ 12 декабря 2011

Из документации PHP:

При преобразовании в логическое значение следующие значения считаются ЛОЖНЫМИ:

  • само логическое ЛОЖЬ
  • целое число 0 (ноль)
  • Поплавок 0,0 (ноль)
  • пустая строка и строка "0"
  • массив с нулевыми элементами
  • объект с нулевыми переменными-членами (только PHP 4)
  • специальный тип NULL (включая неустановленные переменные)
  • SimpleXML-объекты, созданные из пустых тегов

Вы можете прочитать больше на этой странице.

...