PHP StdClass - 访问字段为 - >字段或 - > {'field'}

时间:2011-04-18 08:17:42

标签: php field stdclass

我正在研究这个PHP代码协作,似乎有些人会像这样访问PHP StdClass字段

$body->head

和其他人一样

$body->{'head'}

据我所知,这些是等价的。是吗?使用哪个是否重要?你更喜欢哪种方式?有什么怪癖要注意吗?

2 个答案:

答案 0 :(得分:21)

它们是等价的。如果您想使用可恶的属性名称,则只需要第二个版本:

$data->{'what * the ! thing'}

如果将纯数据数组转换为对象,有时会发生这种情况。

但是还有双引号版本,当你真正需要变量属性名称(基本上是对象的变量变量)时会更有意义:

$data->{"attr$index"}

答案 1 :(得分:2)

我需要创建具有异常属性名称的类,例如{{field-name'}。

class myclass
{
    public {'field-name-with-minus-sign'} = "something";
}

我不能工作。为什么?我不想使用这样的东西:

$myclass = new stdClass();
$myclass->{'dumb-property-name'}

因为我有很多这样的属性。