Полный вопрос должен быть «Это правильно или это какая-то ошибка, на которую я не могу рассчитывать?»
ПОЧЕМУ это правильное поведение?
Я больше работаю с 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 - потому что к именам добавлено «имя».
Это какая-то ошибка (в этом случае я не могу / не буду рассчитывать на это) или это так, как и должно быть. Потому что это действительно неплохо, так как работает сейчас.
Обновление
По-видимому, по словам одного из сопровождающих , это не ошибка. Кто-то опубликовал сообщение об ошибке в 2008 году, на что он ответил: «Это не ошибка, прочтите документы».
Однако мне бы очень хотелось узнать, ПОЧЕМУ это правильное поведение.