I normally count() an array, so I wanted to see how empty() would stack up.
<?php
$test = array();
$test2 = array();
for ($x = 0; $x < 1000; $x++) $test[] = $x;
$ts = microtime(true);
for ($x = 0; $x < 100000000; $x++)
{
if (count($test))
{
}
}
echo "Time taken: " . (microtime(true) - $ts) . " sec\n";
?>
For 100,000,000 comparisons, here are the results against PHP 7.2.16 on my hardware:
count($test): 2.697 sec
count($test2): 2.596 sec
$test === array(): 2.579 sec
$test2 === array(): 2.552 sec
empty($test): 3.085 sec
empty($test2): 3.113 sec
In short, it doesn't matter what method is used although empty() is actually just ever so slightly slower despite it being a language construct. YMMV.