Я только что узнал, что вы можете установить любое свойство класса (если оно явно не объявлено как частное). Например:
class Test {}
$test = new Test;
$test->randomthing = 'Hello world';
var_export($test);
Прекрасно работает для установки свойства randomthing
объекта $test
.
Я пытаюсь выяснить, как называется это поведение, и возможно ли его устранить / отключить (чтобы минимизировать ошибки в коде), потому что в его нынешнем виде я могу набирать нужные свойства и не замечать вовремя .
В идеале я хотел бы иметь:
class User {
protected $name;
}
И тогда я хочу иметь возможность установить $user->name = ''
, но не $user->randomthing = ''
. Этот второй вызов в идеале выбрасывает исключение или что-то в этом роде.
Я пытался угадать это соглашение, просматривая «динамические свойства», но, похоже, это относится к таким вещам, как синтаксис двойного доллара, для ссылки на свойство по значению в переменной.
Итак, как вы называете это поведение? И где я могу прочитать больше об управлении (или отключении)?