Will isset() trigger __get and why?
问题 class a { function __get($property){...} } $obj = new a(); var_dump(isset($obj->newproperty)); Seems the answer is nope but why? 回答1: Because it checks __isset rather than retrieving it using __get. It is a much better option to call __isset, as there is no standard on what is empty. Maybe in the context of the class null is an acceptable value. You could also have a class that if the member didn't exist, it returned a new empty object, which would break isset($myObj->item) as in that case it