Я читал этот вопрос и увидел эту строку:
if ($a == $b) { return true } else { return false }
И это заставило меня задуматься, как лучше всего привести переменную неизвестного типа (может быть строка, может быть int; кто знает? кого это волнует?) в логическое значение?
Конечно, if ($ var) {return true; } else {вернуть ложь; }
поможет, но я думаю, что вернет $ var? true: false;
, вероятно, лучше.
Если на то пошло:
return $ var && true
return $ var || false
return! empty ($ var)
, наверное, лучше, но есть ли лучший способ преобразования в bool? Что еще более важно, что делает его лучше?
Отредактируйте, чтобы уточнить:
Это не было написано с намерением представить исчерпывающий список способов преобразования в логическое значение. У меня вопрос конкретно о явном приведении . Прежде чем я узнал о empty
, я использовал isset ($ var) && $ var
, так как это предотвратило бы появление ошибок в необъявленных переменных. Теперь я использую ! Empty ($ var)
, так как это быстрее набирать.
! Empty
имеет (недостаток) преимущество в том, что не выдает никаких ошибок E_NOTICE
, когда переменная не определена. Это можно считать хорошим, если вы проверяете переменные $ _ GET
или $ _ SESSION
, для большинства других переменных, я полагаю, это можно считать плохим, поскольку это скроет проблемы, когда переменная не инициализирована там, где она должна быть инициализирована.
Мне было любопытно, есть ли у других разработчиков другой способ делать вещи, о которых я не знал.