PHP对象索引为字符串


PHP Object Indices as Strings?

有没有一种方法可以通过将对象的名称用作字符串来访问对象的成员?

当我声明一个数组时。。。

$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

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

您可以在此处看到更多变量示例。

您可以使用以下语法:

<?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>";

通过这种方式,您可以访问对象变量,就好像它们是关联数组中的条目一样。