Когда я изучал PHP, я где-то читал, что вы всегда должны использовать версии логических значений в верхнем регистре, TRUE
и FALSE
, поскольку «нормальные» версии в нижнем регистре true
и false
, были небезопасны для использования.
Прошло много лет, и каждый сценарий PHP, который я написал, использует версию в верхнем регистре. Теперь, однако, я сомневаюсь в этом, поскольку я видел много PHP, написанного с использованием строчной версии (например, Zend Framework).
Была ли / была ли когда-либо причина использовать версию в верхнем регистре, или это нормально, чтобы использовать нижний регистр?
edit: Забыл упомянуть, что это относится и к NULL
и null
.
php
language-history
Остин Хайд
источник
источник
Ответы:
В официальном руководстве по PHP говорится:
Так что да,
true === TRUE
иfalse === FALSE
.Лично я предпочитаю
TRUE
сноваtrue
иFALSE
сноваfalse
по причинам удобочитаемости. По той же причине я предпочитаю использоватьOR
overor
или||
и использоватьAND
overand
или&&
.PSR-2 стандарт требует
true
,false
иnull
быть в нижнем регистре.источник
OR
и||
- это разные операторы в PHP (поскольку они имеют разный приоритет), какAND
и&&
. (Так, например,&&
и||
имеют более высокий приоритет, чем операторы присваивания, ноOR
иAND
таковыми не являются.)Удачной отладки! (PHP < 5.1.3 (2 мая 2006 г.) , см. Демонстрацию )
Изменить: заглавные буквы - это константы, а строчные - значения. Вас интересует значение, а не константа, которая может легко измениться.
источник
T_NULL
,T_TRUE
иT_FALSE
во время синтаксического анализа), не чувствительны к регистру, поэтому использованиеNULL
в действительности не является «константой» --- если вы не сделаете его константой, используяdefine()
. Простое использованиеNULL
илиTRUE
не означает, что это константа, как если бы такой константы не было, PHP интерпретирует ее как литерал. Более точное описание состоит в том, что строчные версии не могут быть переопределены, в то время как любые другие варианты регистра могут быть .Используйте строчные буквы.
источник
Если вы собираетесь использовать JSON, RFC7159 говорит:
Из списка обратно несовместимых изменений в PHP 5.6 :
По стандарту ПСР-2 :
источник
json_encode(TRUE)
иjson_encode(true)
уступают'true'
.Раньше я использовал логические значения ИСТИНА / ЛОЖЬ в стиле C, как и все константы, только заглавными буквами, пока не попал на подножку PSR .
Раздел 2.5 ПР-2:
В общем, если вы хотите поиграть с подробностями в стиле открытого исходного кода, логические значения должны быть строчными.
источник
Неважно,
true
точно так же, какTRUE
. То же самое касаетсяfalse
иnull
. Я не слышал, чтобы это имело какое-либо значение.Единственный способ испортить ситуацию - это указать эти значения в кавычках, например:
Единственное, что ограничивает или побуждает вас использовать верхний или нижний регистр, - это правила вашей компании или ваши собственные правила кодирования. В остальном вы можете использовать любой из них, и это не вызовет никаких проблем.
источник
false
иnull
буду таким же. Я сказал, что «то же самое дляfalse
иnull
», что означало, что и то и другое может быть выражено строчными или прописными буквами.Я написал простой код, чтобы проверить разницу между false и FALSE : каждая итерация делала что-то, что:
Вот результаты:
Таким образом, мы видим, что логический регистр немного влияет на производительность - строчные буквы быстрее. Но уж точно не увидишь.
источник
Лично я всегда использовал строчную форму, но без какой-либо конкретной причины, кроме как для того, чтобы мой код выглядел аккуратно, единственное место, где я использую заглавные буквы, - это имена классов верблюжьего корпуса и имена переменных.
Одно из преимуществ использования прописных букв, которое приходит на ум, заключается в том, что они выделяются и их легко найти в коде.
источник
Я наткнулся на этот старый вопрос, задав себе то же самое. Хороший момент с define ('TRUE', false); define ('FALSE', true); Однако это не относится к php5. Написание этих строк в коде php5 похоже на написание комментария.
источник
Вот мой ТЕСТ на Windows 7x64bit Apache / 2.4.9 PHP / 5.5.14
На этот раз ЛОЖЬ выиграла 20 раз. Так что в моей среде прописные буквы быстрее.
источник