如果我有一堂课:
class ExampleClass {
private $thing1;
private $thing2;
}
我可以fetch_object('ExampleClass')
在 mysqli_result 对象上使用来创建 ExampleClass 的实例。使用此方法,将设置 ExampleClass 的私有属性,前提是查询具有相同名称的列。
除了这些属性之外,还将为查询中的任何其他列添加其他公共属性。有没有办法避免这种情况?我在fetch_object的 php 文档中找不到任何关于它的信息。
如果我使用这样的构造函数设置 ExampleClass
function __construct($properties = []) {
foreach ($properties as $key => $value)
if (property_exists($this, $key))
$this->$key = $value;
}
我可以使用 fetch_assoc 而不是 fetch_object 从结果集中获取行,然后使用结果数组作为参数创建一个新的 ExampleClass。这实现了我的目标,但我希望得到更直接的东西。