gpt4 book ai didi

php - PDOStatement::fetchObject 如何在构造类之前设置属性?

转载 作者:搜寻专家 更新时间:2023-10-31 21:41:17 26 4
gpt4 key购买 nike

当我调用 this function ,并向我的类添加一个构造函数,我所有的类属性都已设置。这怎么可能 - 我认为您必须先构造一个类才能设置它的属性?

最佳答案

我猜测 PDO 使用一些内部代码来创建对象而不调用构造函数。然而,即使在纯 PHP 中也可以在不调用构造函数的情况下实例化一个新对象,您所要做的就是反序列化一个空对象:

class SampleClass {
private $fld = 'fldValue';

public function __construct() {
var_dump(__METHOD__);
}

// getters & setters
}

$sc = unserialize(sprintf('O:%d:"%s":0:{}', strlen('SampleClass'), 'SampleClass'));
echo $sc->getFld(); // outputs: fldValue, without calling the construcotr

从 PHP 5.4.0+ 开始 ReflectionClass::newInstanceWithoutConstructor()方法在反射 API 中可用。

关于php - PDOStatement::fetchObject 如何在构造类之前设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com