gpt4 book ai didi

php - 如何在创建对象时为 stdClass 对象设置属性

转载 作者:IT王子 更新时间:2023-10-29 00:57:07 26 4
gpt4 key购买 nike

我想在单个语句中为 stdClass 对象设置属性。我对此一无所知。我知道以下几点

$obj = new stdClass;
$obj->attr = 'loremipsum';

它需要两个语句。

$obj = (object) array('attr'=>'loremipsum');

它采用单语句,但不是直接方法。

$obj = new stdClass(array('attr'=>'loremipsum'));

它不工作。

最佳答案

$obj = (object) array(
'attr'=>'loremipsum'
);

实际上,这已经很直接了。即使是自定义构造函数也无法在单个表达式中执行此操作。

(object) 转换可能 实际上是对数组的简单转换,因为在内部,属性也存储在散列中。

你可以像这样创建一个基类:

abstract class MyObject
{
public function __construct(array $attributes = array())
{
foreach ($attributes as $name => $value) {
$this->{$name} = $value;
}
}
}

class MyWhatever extends MyObject
{
}

$x = new MyWhatever(array(
'attr' => 'loremipsum',
));

这样做会锁定您的构造函数,要求每个类在被覆盖时调用其父构造函数。

关于php - 如何在创建对象时为 stdClass 对象设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761335/

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