2

名前を文字列として使用して、オブジェクトのメンバーにアクセスする方法はありますか?

配列を宣言すると...

$array = array();
$array['description_en']="hello";
$array['description_fr']="bonjour";

次に、次のようにメンバーにアクセスします。

$lang="en"; //just to show my purpose. it will be dynamic
$description = $array['description_'.$lang];

オブジェクトに対して同じことを行うことはできますか?

例えば:

$obj->description_en="hello";
$obj->description_fr="bonjour";

どうすればアクセスできます$obj->description_.$langか?

4

2 に答える 2

3
class test
{
    public $description_en = 'english';
}

$obj = new test();
$lang = 'en';
echo $obj->{"description_".$lang}; // echo's "english"

可変変数のその他の例については、こちらを参照してください

于 2013-07-30T13:03:10.487 に答える
2

次の構文を使用できます。

<?php

class MyClass {
    public $varA = 11;
    public $varB = 22;
    public $varC = 33;
}

$myObj = new MyClass();

echo $myObj->{"varA"} . "<br>";
echo $myObj->{"varB"} . "<br>";
echo $myObj->{"varC"} . "<br>";

このようにして、連想配列のエントリであるかのようにオブジェクト変数にアクセスできます。

于 2013-07-30T13:03:15.730 に答える