empty() değere başvuru ile erişmesi gerekir (bu başvurunun var olan bir şeye işaret edip etmediğini kontrol etmek için) ve 5.5'ten önceki PHP işlevlerden döndürülen geçici değerlere başvuruları desteklemiyordu.
Ancak, asıl sorun empty(), "boş" değerin "yanlış" değerinden farklı olduğuna inanarak, hiç kullanmamanızdır.
Empty sadece bir takma addır !isset($thing) || !$thing. Kontrol ettiğiniz şey her zaman mevcut olduğunda (PHP'de işlev çağrılarının sonuçları her zaman mevcuttur), empty()işlev bir olumsuzlama operatöründen başka bir şey değildir .
PHP'nin boşluk kavramı yoktur . False olarak değerlendirilen değerler boş, true olarak değerlendirilen değerler boş değildir. Aynı şey. Bu kod:
$x = something();
if (empty($x)) …
ve bu:
$x = something();
if (!$x) …
her durumda tüm veri türleri için her zaman aynı sonuca sahiptir (çünkü $xtanımlanmıştır empty()gereksizdir).
Yöntemin dönüş değeri her zaman vardır (ifadeniz olmasa bile return, dönüş değeri vardır ve içerir null). Bu nedenle:
if (!empty($r->getError()))
mantıksal olarak şuna eşittir:
if ($r->getError())
empty: wiki.php.net/rfc/empty_isset_exprs