使用全局$POST v/s$GLOBAL[‘POST’]

时间:2012-11-21 作者:RRikesh

这可能更像是一个PHP问题,但我想知道在使用

global $post;
echo $post->ID;
与相比时

echo $GLOBALS[\'post\']->ID;
访问WordPress中帖子的ID。

answer on表示第一种方法处理速度更快,而第二种方法编写速度更快。

我还注意到,第一种方法在法典中经常提到,而第二种方法在the_content filter

这只是偏好的问题吗?还是在性能和安全方面也是如此?

谢谢

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用just时没有区别echo. 不同之处在于unset():

function test_unset_1()
{
    global $post;
    unset( $post );
}
function test_unset_2()
{
    unset( $GLOBALS[\'post\'] );
}

test_unset_1();
echo $GLOBALS[\'post\']->ID; // will work

test_unset_2();
echo $GLOBALS[\'post\']->ID; // will fail
原因是unset() 在第一种情况下仅销毁局部引用,在第二种情况下销毁真实的全局对象。

为了便于阅读,请始终使用$GLOBALS[\'post\']. 更容易看到变量的来源。

结束

相关推荐

$GLOBALS array for WordPress

有WordPress定义的文件吗$GLOBALS? 我只是好奇WordPress使用它的目的和用途。仅此而已!