当使用ajax获取内容时,PHP how-come全局变量不起作用


PHP how come global variable does not work when utlizing ajax to fetch content?

所以我有这个代码片段。

function get_box_ajax() {
    global $box;
    $box = get_box(); // creates box object
    ob_start();
    get_template( '/filepath/content.php' );
    $output = ob_get_clean();
}
// in the content.php file
global $box;
<form action="<?php echo box_url( $box->url ); ?>" method="post"> // error on this line
...
</form>

因此,使用这段代码,我在调用$box->url时遇到了一个非对象错误。请注意,这是通过ajax完成的。

所以我想,在我的ajax函数中,我已经全球化了$box,这需要时间,但它似乎不起作用?有什么想法吗?

两件事:

什么时候调用get_box_ajax函数?函数get_box做什么?这两件事都是相关的。

我认为问题不在于box是否是全局的(事实确实如此),而在于boxurl变量是否正在定义,或者box是否正在初始化。

在函数之前将box设置为null。在全球范围中没有参考

$box = null;
function get_box_ajax() {
    global $box;
    $box = get_box();

将开始更改为