私はしばらく検索しており、簡単な質問に対する答えを見つけることができません。 PHPでオブジェクトの配列を持つことは可能ですか?など:PHPオブジェクトの配列
$ar=array();
$ar[]=$Obj1
$ar[]=$obj2
何らかの理由で私はどこでも答えを見つけることができませんでした。私はそれが可能だと仮定しますが、私はただ確認する必要があります。
私はしばらく検索しており、簡単な質問に対する答えを見つけることができません。 PHPでオブジェクトの配列を持つことは可能ですか?など:PHPオブジェクトの配列
$ar=array();
$ar[]=$Obj1
$ar[]=$obj2
何らかの理由で私はどこでも答えを見つけることができませんでした。私はそれが可能だと仮定しますが、私はただ確認する必要があります。
これはPHP docs上に読み取ることがあるような一般的な(とやや簡単な質問)への回答を見つける最適な場所。具体的にはobjectsをご覧ください。 stdObjectとインスタンス化されたオブジェクトを配列内に格納することができます。実際、 'hydration'というプロセスがあり、オブジェクトのメンバ変数にデータベース行の値を設定し、オブジェクトは配列(おそらく他のオブジェクトも含む)に格納され、アクセスのために呼び出しコードに戻されます。
- 編集 -
class Car
{
public $color;
public $type;
}
$myCar = new Car();
$myCar->color = 'red';
$myCar->type = 'sedan';
$yourCar = new Car();
$yourCar->color = 'blue';
$yourCar->type = 'suv';
$cars = array($myCar, $yourCar);
foreach ($cars as $car) {
echo 'This car is a ' . $car->color . ' ' . $car->type . "\n";
}
私はPHPサイトを試してみて何も見つけられませんでした。私はMatt Zandstraの本 "PHP Objects、Patters、and Practice"の本に座っています。情報を見つけることができませんでした。 – Beamer180
@EricLarsen:更新された投稿。 –
Question: その配列にただ1つの 'Car'の' color'だけを出力したいとします。あなたは 'echo $ cars [0] - > color;' '最初のものを印刷し、' 'echo $ cars [1] - > color;' '2回目を印刷しますか? –
はい。中
$array[] = new stdClass;
$array[] = new stdClass;
print_r($array);
結果:
Array
(
[0] => stdClass Object
(
)
[1] => stdClass Object
(
)
)
配列はので、私はオブジェクトの配列をしたいとき、私はそれを行うのポインタを保持することができます。
$a = array();
$o = new Whatever_Class();
$a[] = &$o;
print_r($a);
これは、オブジェクトが参照され、アレイからアクセス可能であることを示します。
はい、PHPでオブジェクトの配列を持つことは可能です。
class MyObject {
private $property;
public function __construct($property) {
$this->Property = $property;
}
}
$ListOfObjects[] = new myObject(1);
$ListOfObjects[] = new myObject(2);
$ListOfObjects[] = new myObject(3);
$ListOfObjects[] = new myObject(4);
print "<pre>";
print_r($ListOfObjects);
print "</pre>";
配列に新しいオブジェクトを追加するたびにmyObject()のコンストラクタインデックスをインクリメントするかどうか、またはオプションであるかどうかを確認しますか?ウェブ言語でのこのOOPのすべてのものは、単にOOPSです! –
@ YoustayIgoこれは例のためのものです。その結果、出力はオブジェクトを互いに区別します。好きな値をコンストラクタに置くことができます。次に、その値をオブジェクトの$ propertyプロパティに代入します。 – ADyson
はい可能です。 – Indranil