对于一个新数组,我这样做:
$aVal = array();
$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";
对象是否有类似的语法
(object)$oVal = "";
$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";
对于一个新数组,我这样做:
$aVal = array();
$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";
对象是否有类似的语法
(object)$oVal = "";
$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";
当前回答
如果你不想这样做:
$myObj = new stdClass();
$myObj->key_1 = 'Hello';
$myObj->key_2 = 'Dolly';
您可以使用以下其中之一:
PHP > = 5.4
$myObj = (object) [
'key_1' => 'Hello',
'key_3' => 'Dolly',
];
PHP < 5.4
$myObj = (object) array(
'key_1' => 'Hello',
'key_3' => 'Dolly',
);
其他回答
你也可以试试这种方法。
<?php
$obj = json_decode("{}");
var_dump($obj);
?>
输出:
object(stdClass)#1 (0) { }
你有这个不好但有用的技术:
$var = json_decode(json_encode([]), FALSE);
使用通用对象并将键值对映射到它。
$oVal = new stdClass();
$oVal->key = $value
或者将数组强制转换为对象
$aVal = array( 'key'=>'value' );
$oVal = (object) $aVal;
我想指出的是,在PHP中,没有像空对象这样的东西:
$obj = new stdClass();
var_dump(empty($obj)); // bool(false)
当然$obj是空的。
另一方面,空数组在两种情况下都是空的
$arr = array();
var_dump(empty($arr));
引用changelog函数为空
没有属性的对象不再被认为是空的。
以类似的方式访问stdClass中的数据 对于关联数组,只需使用{$var}语法。
$myObj = new stdClass;
$myObj->Prop1 = "Something";
$myObj->Prop2 = "Something else";
// then to acces it directly
echo $myObj->{'Prop1'};
echo $myObj->{'Prop2'};
// or what you may want
echo $myObj->{$myStringVar};