Полный вопрос должен быть "Правильно это или это ошибка, на которую я не могу рассчитывать?"
ПОЧЕМУ это правильное поведение?
Я больше работал с PDO и, в частности, играл с извлечением данных непосредственно в объекты. При этом я обнаружил это:
Если я получаю данные непосредственно в объект следующим образом:
$STH = $DBH->prepare('SELECT first_name, address from people WHERE 1');
$obj = $STH->fetchAll(PDO::FETCH_CLASS, 'person');
и иметь такой объект:
class person {
public $first_name;
public $address;
function __construct() {
$this->first_name = $this->first_name . " is the name";
}
}
Он показывает мне, что свойства присваиваются перед вызовом __construct - потому что все имена имеют "имя".
Является ли это некоторой ошибкой (в этом случае я не могу/не буду на нее рассчитывать), или это так, как должно быть. Потому что это действительно очень хорошо, как это работает в настоящее время.
Update
По-видимому, по словам одного из сопровождающих, это не ошибка. Кто-то отправил его в качестве ошибки в 2008 году, на который ответ был "не ошибкой, прочитал документы".
Однако мне бы очень хотелось знать, ПОЧЕМУ это правильное поведение.