Вы должны использовать магические методы __set
и __get
и объявить это свойство как защищенное или личное:
/**
* @property-read string $value
*/
class Example
{
private $value;
public function __construct()
{
$this->value = "test";
}
public function __get($key)
{
if (property_exists($this, $key)) {
return $this->{$key};
} else {
return null; // or throw an exception
}
}
public function __set($key, $value)
{
return; // or throw an exception
}
}
Пример:
$example = new Example();
var_dump($example->value);
$example->value = "invalid";
var_dump($example->value);
Выходы:
string(4) "test"
string(4) "test"
@property-read
должен помочь вашей IDE признать существование этого магического свойства.