Я читал этот вопрос и увидел эту строку:
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, для большинства других переменных, я полагаю, это можно считать плохим, поскольку это скроет проблемы, когда переменная не инициализируется там, где она должна была быть инициализирована.
Мне было любопытно, есть ли у других разработчиков другой способ делать то, что у меня не было известно о.