Они довольно близки, за исключением того, что strlen()
вернет 0
для NULL
строк, поэтому, если ваше $str
было NULL
, выражение 0 !== strlen($str)
в вашем первом тесте будет иметь значение true
, тогда как '' !== $str
в вашем втором тесте оценивается как false
.