Хорошо ли использовать в PHP неявное приведение типов int bool?

Хорошо ли в PHP использовать неявное приведение типов int <-> bool или приведение типов приводит к подвохам и дополнительные расходам на приведение? Скорее всего, на практике особой разницы не будет, но все равно интересно с теоретической точки зрения.

Равноценны ли такие варианты?
$int_var = 1;
if( $int_var ) {...}
if( $int_var != 0 ) {...}

$bool_var = true;
if( $bool_var ) {...}
if( $bool_var != 0 ) {...}

Бывкет, готовая функция написана так, что внутри сравнивает переменную с нулем, а ей передают bool. Стоит ли при вызове функции делать myfun( $bool_var ? 1 : 0 )
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Технически равноценны, но второй при сравнении с нулём выглядит глупо.
Хорошо или не хорошо - вопрос философский. РНР до сих пор язык со слабой типизацией, и никаких подвохов или расходов тут нет.
Я бы сказал, что неявное приведение к булеву типу до сих пор используется повсеместно, что в if, что в while. Особенно в последнем. Писать while (($row = $stmt->fetch()) !=== false) вместо while ($row = $stmt->fetch()) пока ещё народ отказывается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы