В php mysql/mysqli/postgre/etc ... есть функции fetch_object, где вы можете получить объект для своей строки данных. По умолчанию он возвращает объект stdClass
, но вы также можете определить имя класса и массив параметров для конструктора.Создайте мою собственную (не-базу данных) функцию fetch_object
Я хотел бы сделать то же самое с простым набором значений. Предпочтительно, задавая свойства объекта до, вызывающего конструктор, который является тем же самым поведением, что и функции базы данных. Однако это не представляется возможным.
Единственный способ создать объект со свойствами, как представляется, равен unserialize a preconstructed string. Но этот пример по-прежнему создает и новый объект, а затем устанавливает свойства этого объекта из несериализованного объекта, чтобы обеспечить вызов конструктора. Но это означает, что конструктор вызывается до того, как будут установлены свойства.
Короче: Я хотел бы следующее:
array_fetch_object(array $properties, string $class_name [, array $params ])
с конструктором под названием после того, как свойства установлены.
Есть ли причина, по которой вы не можете просто использовать 'new'? '$ x = new $ class ($ argument)' – mattbasta
Это не будет иметь свойств, заданных до вызова конструктора, и частные свойства не могут быть установлены. – ontrack