В API документации в классе CWebUser, экземпляр которого доступен как-
Yii::app()->user
в разделе Public Properties приводится свойство name.
На самом деле такое свойство - public $name в этом классе не определяется.
Как так получается, что это свойство доступно как
Yii::app()->user->name, будто бы в этом классе действительно есть определение public $name
хотя по всем правилам его можно получить только так
Yii::app()->user->getName()
У кого есть время, объясните, пожалуйста.
С уважением - Новичек.
Извиняюсь, разобрался, слабо знаю PHP:
Overloading
Overloading in PHP provides means to dynamically "create" properties and methods
…
С другой стороны, почему бы просто не объявить:
public $name ?
Тем более, что и свойство получается какое-то не полноценное -
когда делаешь распечатку
print_r(Yii::app()->user)
это свойство name, в распечатке не фигурирует. Я сначала подумал, что это свойство static.
Как на мой неграмотный взгляд, PHP грешит излишней избыточностью.
Глаза разбегаются, и ноги разъезжаются…