I haven’t explored this issue in-depth. But I try to use empty() when I need th check if there is something in array. Because count and sizeof may give 1 while it is not array at all!
and empty() gives the same result as count($arr) > 0 && is_array($arr), but it requires twice less code