Можно ли использовать несуществующие свойства объектов?
Насколько вижу (хотя в уроках это то ли не упоминалось, то ли было мною упущено), при попытке установить значение несуществующего свойства какого-либо объекта, PHP преспокойно молчит, и это значение даже можно потом из объекта прочитать. То есть поведение совершенно такое же, как будто это свойство было в классе объявлено, и оно публичное.
Хотя, по логике, при таких действиях хорошо было бы выдать хотя бы предупреждение.
Так что вопрос - нормально ли такое поведение PHP? Это следование какому-то принципу ООП, или это наоборот "упрощение для домохозяек"? Можно ли использовать установку и чтение несуществующих свойств, или лучше специально сделать __set (а то и __get), в котором выбрасывать исключение при попытке доступа к несуществующему свойству?
Что в данном случае считается сегодня хорошей практикой?
Если хотите работать с PHP, и при этом блюсти чистоту ООП - не обращайтесь к свойствам объектов в принципе, только к их методам.
Тогда язык будет примерно соответствовать вашим ожиданиям ;)