【问题标题】:Get property by string name (PHP)按字符串名称获取属性 (PHP)
【发布时间】:2014-03-06 09:32:39
【问题描述】:

如果我有以下类属性$classProperty = "Initial value",如何使用另一个属性$propertyName = "classProperty" 访问它?我想做类似${$propertyName} = "Modified value" 的事情并让echo $classProperty 输出:"Modified value"

【问题讨论】:

  • 你所说的属性是指 HTML 类?
  • 呃,你的问题完全没有。我的理解是我认为您的意思是指访问类实例属性?请更具体
  • 变量变量...坏主意...您可以使用引用。 $foo = &$bar; $bar = 'baz'; echo $foo 将输出 baz...
  • 我说的是 PHP 类属性。

标签: php string properties


【解决方案1】:

您应该尝试将类属性设置为数组

private $_arProp = array();

然后,使用密钥来识别属性

$_arProp[ 'key' ] = 'Property Value';

这应该对我有帮助。

【讨论】:

  • 我可以使用 property_exists() 来检查一个属性是否存在,如果它存在我想设置它,但是一旦它被确认它存在我不知道如何访问它。问题是我的类有很多属性,所以我希望能够像 SetProperty($theProperty, $theValue) 一样设置它们。 SetProperty 方法将检查属性是否存在,如果存在,则为其赋值。
【解决方案2】:

如果它是静态属性,你可能可以使用ClassName::$$propertyName

对于实例的属性,请执行$instance->$propertyName

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多