Как работает true / false в PHP?

Интересно, как PHP обрабатывает истинное / ложное сравнение внутри. Я понимаю, что true определяется как 1, а false определяется как 0. Когда я делаю if("a"){ echo "true";} это echos « true ». Как PHP распознает «a» как 1?

  • Joomla: как получить URL-адрес определенного ID элемента меню?
  • PHP ereg_replace устарел
  • Получить имя класса из файла
  • Возврат нескольких строк с помощью MySqli и массивов
  • Mysqli update throwing Вызов функции-члена bind_param ()
  • PHPExcel Как получить только 1 значение ячейки?
  • 5 Solutions collect form web for “Как работает true / false в PHP?”

    Это описано в документации PHP для булевых таблиц и таблиц сравнения типов .

    При преобразовании в boolean следующие значения считаются FALSE:

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

    Каждое другое значение считается ИСТИННЫМ .

    Ноль – ложь, отличное от нуля.

    В php вы можете более точно проверить использование оператора === .

     if (0==false) echo "works"; // will echo works if (0===false) echo "works"; // will not echo anything 

    Лучшим оператором для строгой проверки является

     if($foo === true){} 

    Таким образом, вы действительно проверяете, действительно ли это правда, а не 1 или просто просто установлено.

    PHP использует слабую типизацию (которую он называет «жонглирование типа»), что является плохой идеей (хотя это разговор в другое время). Когда вы пытаетесь использовать переменную в контексте, который требует логического значения, он преобразует любую вашу переменную в логическую, в соответствии с некоторыми в основном произвольными правилами, доступными здесь: http://www.php.net/manual/en/language .types.boolean.php # language.types.boolean.casting

    is_false(type value) оператор как унарную функцию: is_false(type value) которая возвращает true или false, в зависимости от конкретной реализации для определенного типа и значения. Рассмотрите, если оператор вызывать такую ​​функцию неявно, через синтаксический сахар.

    Другая возможность заключается в том, что тип имеет оператор cast, который неявно превращает тип в другой тип, в этом случае строка в Boolean.

    PHP не раскрывает такие детали, но C ++ позволяет перегрузку оператора, которая предоставляет мелкие детали реализации оператора.

    PHP is the Best Programming Language in the world.