使用PHP将对象转换为数组的不同方法
使用此代码时:使用PHP将对象转换为数组的不同方法,php,arrays,object,Php,Arrays,Object,使用此代码时: $array=(array)$yourObject $yourObject的属性转换为数组索引,但如何转换为一个数组,这意味着,$yourObject是$array的一个索引,而Iecho$array[0]用于通过对象访问 另一种提问方式,请参见此示例代码: <?php $var1 = (string) 'a text'; $var2 = (array) array('foo', 'bar'); $var3 = (object) array("foo" => 1,
$array=(array)$yourObject代码>
$yourObject
的属性转换为数组索引,但如何转换为一个数组,这意味着,$yourObject
是$array
的一个索引,而Iecho$array[0]
用于通过对象访问
另一种提问方式,请参见此示例代码:
<?php
$var1 = (string) 'a text';
$var2 = (array) array('foo', 'bar');
$var3 = (object) array("foo" => 1, "bar" => 2);
//It's OK.
foreach((array)$var1 as $v) {
echo $v."<br>";
}
echo "<hr>";
//It's OK.
foreach((array)$var2 as $v) {
echo $v."<br>";
}
echo "<hr>";
//It's NOT OK. I want through $var3 in output as an array with one index!
foreach((array)$var3 as $v) {
echo $v."<br>";
}
echo "<hr>";
?>
$var2的输出:
array
0 => string 'foo' (length=3)
1 => string 'bar' (length=3)
$var3的输出:
array
0 =>
object(stdClass)[1]
public 'foo' => int 1
public 'bar' => int 2
最后,我确定foreach返回当前结果时不会出错。您的意思是将对象包装在数组中
$array = array($yourObject);
如mc10所述,您可以使用:
你能澄清你的问题吗?这有点难理解。//这不好。我想通过$var3作为一个带有一个索引的数组输出代码>这意味着什么?我再次编辑了我的问题。或者,在PHP5.4(?)中,您可以使用$array=[$yourobject]代码>。不在PHP中,$array=(array)$yourObject;是corrent@popnoodles什么<代码>$array=(array)$yourObject代码>是完全不同的。他问的是模棱两可的,尽管你已经读了第十遍了,但你可能是对的。不,在你认为他想要的东西可能是对的之后。
$array = array($yourObject);
$array = [$yourObject];