我碰到了这段代码
$user = new stdClass();
$user->{'approved'} = 'No';
我搜索了PHP文档和Google,却找不到答案来解释为什么使用这种语法而不是:
$user = new stdClass();
$user->approved = 'No';
答案 0 :(得分:1)
使用 的原因是因为我的IDE(PhpStorm)不知道实例具有哪些属性,并且在使用$user->approved
时将$user->{'approved'}
的使用标记为未定义的属性。有效。当从外部源(例如API调用)加载数据时,尤其会发生这种情况。
除此之外,我想说的是开发人员的偏好问题。
答案 1 :(得分:0)
这种类型的代码用于将来的修订,在第一次开发时会在此处添加临时/静态值。
$user = new stdClass();
$user->{'approved'} = 'No';
语法{'value'}
用于动态属性元素,您可以像这样使用它
$dynamicVal = 'approved';
$user->{$dynamicVal} = 'No';