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