-5

使用此代码时:

$array=(array)$yourObject;

convert的属性$yourObject可以索引一个数组,但是如何转换为一个数组,这些意思是,通过对象访问的和我$yourObject是一个索引?!$arrayecho $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>";

?>

另一种方式:

我想在 foreach 中使用一个变量,但我不确定这个类型,我想为任何类型变量(字符串,数组,对象,...)工作 foreach 而不会出错例如我认为我必须为某些这种类型提供这个示例输出:

$var1 的输出:

array
  0 => string 'a text' (length=6)

$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 返回当前结果没有错误。

4

1 回答 1

2

你的意思是把你的对象包装在一个数组中?

$array = array($yourObject);

正如 mc10 所提到的,您可以使用PHP 5.4 开始的新短数组语法

$array = [$yourObject];
于 2012-11-24T20:37:43.160 回答