有没有办法通过将其名称用作字符串来访问对象的成员?
当我声明一个数组......
$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
?
答案 0 :(得分:3)
class test
{
public $description_en = 'english';
}
$obj = new test();
$lang = 'en';
echo $obj->{"description_".$lang}; // echo's "english"
您可以看到更多变量变量here的例子。
答案 1 :(得分: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>";
这样,您可以像访问关联数组中的条目一样访问对象变量。