-5

このコードを使用する場合:

$array=(array)$yourObject;

convertのプロパティは配列のインデックスに$yourObject変換しますが、1 つの配列として変換するにはどうすれば$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 をエラーなしで動作させたいと考えています。たとえば、いくつかの this 型に対してこのサンプル出力が必要だと思います:

$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 に答える