PHP语法$ obj-> {'somekey'}

时间:2019-08-16 09:09:10

标签: php syntax

我碰到了这段代码

$user = new stdClass();
$user->{'approved'} = 'No';

我搜索了PHP文档和Google,却找不到答案来解释为什么使用这种语法而不是:

$user = new stdClass();
$user->approved = 'No';

2 个答案:

答案 0 :(得分:1)

使用 的原因是因为我的IDE(PhpStorm)不知道实例具有哪些属性,并且在使用$user->approved时将$user->{'approved'}的使用标记为未定义的属性。有效。当从外部源(例如API调用)加载数据时,尤其会发生这种情况。

除此之外,我想说的是开发人员的偏好问题。

答案 1 :(得分:0)

这种类型的代码用于将来的修订,在第一次开发时会在此处添加临时/静态值。

$user = new stdClass();
$user->{'approved'} = 'No';

语法{'value'}用于动态属性元素,您可以像这样使用它

$dynamicVal = 'approved';
$user->{$dynamicVal} = 'No';