Есть класс: PHP: class MyClass { protected $_items = []; public function __construct() { // ... } // ... } Возможно ли сделать так, чтобы при обращении к объекту таким образом: PHP: $obj = new MyClass(); if (! empty($obj)) { /* ... */ } if (! isset($obj)) { /* ... */ } if (! $obj) { /* ... */ } Проверялся не сам объет, а свойство $_items? Магические методы не помогают, насколько я внимательно читал документацию, интересно возможно ли это в принципе. Верия PHP 7.0 (и младше).
PHP: <?php error_reporting ( E_ALL ); final class A { protected $item = 1; public function __isset( $name ) { var_dump ( 'isset' ); return isset ( $this -> {$name} ); } } $a = new A; echo isset ( $a -> item ) ? 1111 : 9; Код (Text): string(5) "isset" 1111