这可能更像是一个PHP问题,但我想知道在使用
global $post;
echo $post->ID;
与相比时echo $GLOBALS[\'post\']->ID;
访问WordPress中帖子的ID。这answer on表示第一种方法处理速度更快,而第二种方法编写速度更快。
我还注意到,第一种方法在法典中经常提到,而第二种方法在the_content
filter 页
这只是偏好的问题吗?还是在性能和安全方面也是如此?
谢谢
这可能更像是一个PHP问题,但我想知道在使用
global $post;
echo $post->ID;
与相比时echo $GLOBALS[\'post\']->ID;
访问WordPress中帖子的ID。这answer on表示第一种方法处理速度更快,而第二种方法编写速度更快。
我还注意到,第一种方法在法典中经常提到,而第二种方法在the_content
filter 页
这只是偏好的问题吗?还是在性能和安全方面也是如此?
谢谢
使用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\']
. 更容易看到变量的来源。