boş () davranış

1 Cevap php

Belki aptalca bir soru soruyorum, ama bu davranış anlayamıyorum:

<?php
    $this->meeting->google_id = 'test';
    $test = $this->meeting->google_id;
    var_dump(empty($test));
    var_dump(empty($this->meeting));
    var_dump(empty($this->meeting->google_id));
?>

çıktıyı verir:

bool(false) bool(false) bool(true) 

Neden empty($this->meeting->google_id); sonucu doğrudur? Ve nasıl bu özelliği daha sonra kontrol etmelisiniz?

1 Cevap

Burada okuyun: http://www.php.net/manual/en/function.empty.php#93117

Temelde, PHP magic methods beklenmedik şekilde davranmasıyla sonuçlanır.

Sınıf bir özel __get sihirli yöntemi vardır eğer bir sınıfta sanal üyelerine okuma / yazma yapabilirsiniz. Bu sınıfın açık bir üyesi değil çünkü actual değeri ise, __isset sihirli yöntemi (empty kullandığı ne olduğu) tarafından kontrol edilemez.