Убедитесь, что вы точно определили, как вы хотите, чтобы эта функция работала с определенными типами. PHP имеет широкий спектр функций проверки типов или аналогичных функций, поэтому убедитесь, что вы знаете, как они работают. Это пример сравнения is_null () и empty ()
$testData = array(
'FALSE' => FALSE
,'0' => 0
,'"0"' => "0"
,'NULL' => NULL
,'array()'=> array()
,'new stdClass()' => new stdClass()
,'$undef' => $undef
);
foreach ( $testData as $key => $var )
{
echo "$key " . (( empty( $var ) ) ? 'is' : 'is not') . " empty<br>";
echo "$key " . (( is_null( $var ) ) ? 'is' : 'is not') . " null<br>";
echo '<hr>';
}
Как вы можете видеть, empty () возвращает true для всех из них, но is_null () делает это только для 2 из них.