微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何动态编写PHP对象属性名称?

如何解决如何动态编写PHP对象属性名称?

PHP 7.0更新

PHP 7引入了在解析器级别处理间接变量和属性的方式的更改(有关更多详细信息,请参见相应的RFC)。这使实际行为更接近预期,并意味着在这种情况下$obj->$field[0]将产生预期的结果。

在不需要(现在已改进)认行为的情况下,仍然可以使用花括号将其覆盖,如下所示。

原始答案

像这样写访问:

$obj->{$field}[0]

每当由于变量变量引起歧义时,这种“用大括号括起来”的技巧在PHP中很有用。

考虑一下初始代码$obj->$field[0]-这是否意味着“访问名称是在属性中的属性$field[0]”,还是“使用0名称是在属性中的属性的键访问元素$field?” 大括号可以使您显得清晰。

解决方法

我的代码中具有对象属性,如下所示:

$obj ->field_name_cars[0];
$obj ->field_name_clothes[0];

问题是我有100多个字段名称,需要动态写入属性名称。否则,对象名称和属性的键将始终相同。所以我尝试了:

$obj -> $field[0];

希望可以动态更改属性名称并访问正确的值。但是,我一直在stdClass :: $ field中得到’undefined property $ field;。

我或多或少尝试在执行之前动态编写php,以便它可以输出适当的值。关于如何处理此问题的想法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。