当前位置: 首页 > 面试题库 >

如何在php中访问名为变量(点表示法)的深层对象属性?

吴峰
2023-03-14
问题内容

有许多与此类似的问题,但是这略有不同,因为它是关于深度对象属性访问的,而不仅仅是深度的一个级别。

假设我有一个包含字符串的变量foo.bar

$user = new User();
$user->foo = new Foo();
$user->foo->bar = "Hello World";

$variable = "foo.bar"

我想$user->foo->bar通过使用以下内容进行回应$variable

echo $user->foo->bar

到目前为止,这是我尝试过的尝试,但没有成功(显示 NULL ):

$value = str_replace(".", "->", $value);
echo $user->{$value};

问题答案:

使用可变属性符号()可以很容易地 减少 对象路径$o->$p

$path = 'foo.bar';
echo array_reduce(explode('.', $path), function ($o, $p) { return $o->$p; }, $user);

这很容易变成小助手功能。



 类似资料:
  • 问题内容: JSON编码的Google API返回了这样的对象 谁知道我该如何获取价值? 显然返回 注意:未定义的变量:在/ usr / local / … 致命错误:无法访问/ ....中的空属性 问题答案: 由于属性的名称是string ,因此可以这样访问它: 另外,您可以将属性的名称放在变量中,然后像这样使用它: 您可以在repl.it上看到它们的实际作用:https ://repl.it/

  • 问题内容: 我正在尝试创建一个BMI计算器。这应该允许人们使用公制或英制。 我意识到我可以使用隐藏标签来解决问题,但是以前这使我很头疼,所以我想问一下:我可以用来查找提交的variableName字段值;但是…我不知道,也不知道如何验证 用于 提交变量的表单。 我的代码如下(尽管我不确定它是否与问题严格相关): 我通过metric验证了它的有效性(尽管目前尚无验证-我不想让我的问题太多)。我已经添

  • 我有一个庞大的收集,我正在寻找一个关键的财产内的某个地方收集。获取包含该键/索引的所有对象的引用列表或完整路径的可靠方法是什么?如果有帮助的话,我使用jQuery和lodash,您可以忘记无限指针递归,这是一个纯JSON响应。 fwiw lodash有一个。find函数,该函数将查找两个嵌套深度的嵌套对象,但之后它似乎失败了。(例如。http://codepen.io/anon/pen/bnqyh

  • 问题内容: 我正在尝试从JavaScript中的JSON过滤数据。 我定义一个变量。我想要等于(不等于)的属性。到目前为止,我还没有找到一种方法。 其他所有内容均正常运行,因为当我将其更改为特定条目(例如,item.date)时,它可以正常工作。我找不到正确的语法。 问题答案: 试试看,也可以通过这种方式访问​​javascript对象。

  • 问题内容: 如果我有一个如下所示的javascript对象 我有一个既传递对象又传递属性的函数,像这样 身体会是什么样? 问题答案: 您不需要它的功能-只需使用括号符号即可: 这等于点表示法,除了在使用方括号表示法时也可能来自变量,函数返回值等的事实。 如果需要它的功能,则为: 为了回答下面与原始问题没有直接关系的一些注释,可以通过多个括号引用嵌套对象。如果您有这样的嵌套对象: 您可以访问财产的,

  • 我使用的是类似于: 这给了我这样的输出: 我想访问键[0]中的字符串值。当我尝试做以下事情时: 我得到这个错误: 分析错误:语法错误,意外的T_DNUMBER 这两个数字/整数似乎有问题。