【问题标题】:PHP operator '->' $foo-> {''}PHP 运算符 '->' $foo-> {''}
【发布时间】:2016-06-30 14:47:35
【问题描述】:

我注意到在带有 JSON 库的 php 上,我们可以使用我以前从未见过的语法访问元素。

$jsonObject->{'myvar'}; // return the value of myvar on the jsonobject

这句话是什么意思?

【问题讨论】:

  • 据我所知,它适用于每个stdclass object 属性,或者更简单地说,任何object 属性。通常,当变量名称中有空格或类似的东西时,您将使用这样的语法,例如:$object->{"hello world"};
  • 您在寻找“这是如何实现的?”的哪些信息?您想了解驱动它的代码,还是想要有关该特定功能的文档?
  • 通常 json 索引可以有空格,因此使用 {} 可以让您访问数据,否则 $object->my index 将不起作用,但 $object->{'my index'} 将起作用
  • @zzzzBov 实际上是的,我想理解那段代码。好吧,现在我明白了,谢谢大家。
  • @S.Blaise,哪段代码?您问题中的代码还是PHP语言中箭头运算符的实现? “这是如何实现的?”暗示后者,而你的陈述暗示前者。

标签: php operator-keyword


【解决方案1】:

我不认为它是 JSON 库所固有的。

这只是确定要调用的变量名称的另一种方法。例如,当您想动态决定应该调用哪个变量时,它很有用,这在魔术方法中非常有用。

$var->{"var_name"} 等同于$var->var_name

你也可以这样做:

$key = "key_name";

var_dump($object->{$key});

您还可以访问带有 无效 字符(例如点或逗号)的键。

$key = "key.name.nice";

var_dump($object->{$key});

【讨论】:

  • +1 但我认为值得指出的是,当您需要访问具有“无效”字符(如空格)的属性时,它特别有用。只是说。
猜你喜欢
  • 2012-05-30
  • 2011-11-18
  • 2012-11-02
  • 2011-01-13
  • 2011-05-28
  • 1970-01-01
  • 2010-12-31
  • 2011-08-21
  • 2015-02-20
相关资源
最近更新 更多