質問

ユーザー定義クラスのオブジェクトの配列があるとします。PHPで配列の要素を抽出する方法を知りたいと思っていました。

// class definition
class User
{
public $fname;
public $lname;
}

// array of objects of the class defined above
$objUser1 = new User():
$objUser2 = new User():
$objUser3 = new User():
$objUser4 = new User():

$alUser = array();
$alUser[] = $objUser1;
$alUser[] = $objUser2;
$alUser[] = $objUser3;
$alUser[] = $objUser4;


// trying to iterate and extract values using typcasting - this does not work, what is the alternative.
foreach($alUser as $user)
{
$obj = (User) $user; // gives error - unexpected $user;
}

これは、Java ArrayList からオブジェクトを抽出するときに Java で行っていた方法でした。そのため、PHP の方法も似ているのではないかと考えました。誰か説明してもらえませんか。

役に立ちましたか?

解決

foreach ($alUser as $user) {
    $obj = $user;
}

なぜあなたはこのために型キャストが必要なのですか?

他のヒント

PHP は動的型付け言語です。ほとんどの場合、キャストする必要はありません。

ユーザーにキャストすることはできません:PHP のドキュメントを参照してください。 タイプジャグリングとキャスティング.

この例では "$user is a object (User)" 四回。

foreach($alUser as $user) {
    echo '$user is a ' . get_type($user);

    if(is_object($user)) {
        echo ' (' . get_class($user) . ')';

    echo "\n";
}

コード補完のためのオブジェクトの種類を決定するために例のEclipse PDTのためにいいだろう。そうでなければ、配列が作成され、どのようなオブジェクトは、それに入れて、その後の機能が利用できます(または一時、新しいtheObjectは、()メソッド/プロパティは、あなたであれば利用できるかを確認するために作成するものを見るためにクラスファイルを見たスタックバックトレースであり、それは、オブジェクトの種類を知っている。他の回は、多くのオブジェクトは、それらの配列とその中のオブジェクトを作成する関数を呼び出す場合などは容易ではないかもしれないので)それらの配列が作られたかを確認するためにバックトレースする必要があります。いくつかの他のIDEのはおそらくphpEdのような優れたタイプを決定することができる聞いたことありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top