【问题标题】:PHP Object Indices as Strings?PHP对象索引作为字符串?
【发布时间】:2013-07-30 12:59:34
【问题描述】:

有没有办法通过将对象的名称用作字符串来访问对象的成员?

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

$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?

【问题讨论】:

  • $obj->{"description_".$lang} 或 $objRef = "description_".$lang; $obj->$objRef
  • @MarkBaker 我能问一下为什么这是评论而不是答案吗?值得将其作为完整答案发布,不是吗?
  • @SmokeyPHP - 主要是因为如果我能以少于推文限制的字符发布回复,我认为不值得回答

标签: php arrays string object


【解决方案1】:
class test
{
    public $description_en = 'english';
}

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

你可以看到更多变量变量的例子here。

【讨论】:

  • 谢谢!以及所有其他答案。
【解决方案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>";

这样,您可以像访问关联数组中的条目一样访问对象变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2010-10-27
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多