class Foo { public function __isset($varname) { echo "ZOMG! isset was called on my $varname!\n"; } } $foo = new Foo; // bar will never get checked var_dump(isset($foo->foo, $foo->bar)); // Output: // ZOMG! isset was called on my foo! // bool(false)
当用isset函数检测一个对象里的属性是否设置时会自动调用__isset()方法