Можно ли проверить, существует ли свойство, которое установлено с помощью магии?
class Test { private $vars; public function __set($key, $value) { $this->vars[$key] = $value; } public function &__get($key) { return $this->vars[$key]; } } $test = new Test; $test->myvar = 'yay!'; if (magic_isset($test->myvar)) { }
Или это не возможно, и мне просто нужно настроить другую функцию в моем классе?
Используйте __isset()
и isset()
:
public function __isset($key) { return isset($this->vars[$key]); }
$test = new Test; $test->myvar = 'yay!'; if (isset($test->myvar)) { }