Часто в php я вижу такие строки кода, как
if(count($arr)) // $arr not empty
или же
if(!$var) // $var is 0
Но для меня более информативным стиль как
if(count($arr) > 0) // or if(!empty($arr))
или же
if($var == 0)
Которые делают такую же проверку. Какой вариант более правильный?
Это не проблема, а просто вопрос стиля кода. Может быть, существует какой-то стандарт (например, PSR-2) для таких условий.
Первое утверждение для подсчета как говорится count()
, Это могут быть значения массива, например.
<?php
$array = array("x", "x", "x");
# Output: 3
echo count($array);
?>
Второе утверждение предназначено для проверки, если переменная $var
это правда или нет. Вы можете перевести эту строку как если $ var не соответствует действительности, тогда ..
<?php
$array = array("x", "x", "x");
if(!$array) {
echo "True";
}else{
echo "Does nothing..";
}
?>
Третье утверждение предназначено для проверки того, $var
больше нуля.
<?php
# Output: "Is not empty!"$array = array("x", "x", "x");
if(count($array) > 0)
echo "Is not empty!";
}else{
echo "Empty..";
}
?>
И последний для проверки, если $var
равно нулю.
<?php
# Output: "Does nothing.."$array = array("x", "x", "x");
if($array == 0) {
echo "Is not empty!";
}else{
echo "Does nothing..";
}
?>
Так что в основном все эти четыре утверждения имеют разные значения. Как ответ на твой вопрос if(count($arr) > 0)
Лучшее решение для проверки, если массив содержит больше нуля записей.
Других решений пока нет …