如何使用global关键字,以便当我按下提交按钮时,我可以设置global关键字,以便脚本的顶部有效?
位于脚本之上。
if(!isset($u)){
echo 'the $u has no value';
} else if(isset($u)){
echo 'the $u has a value of yes';
}
位于脚本的底部。
if (isset($_POST['submit'])){
global $u;
$u = 'yes';
}
答案 0 :(得分:2)
全局与范围相关,而不是与执行顺序相关
如果两段代码都是全局的,即未包含在函数中,则'global'关键字无效,因为它们在同一范围内
正如另一个答案正确指出的那样,你的问题是执行问题的顺序,而不是范围问题
答案 1 :(得分:1)
这不是全球意味着什么。全局意味着可以在函数内部访问变量等。您可能想要使用Sessions。这涉及到
sesssion_start();
某处(通常是脚本的顶部)。 然后可以通过
存储和检索变量$_SESSION['name'] = $foo;//Store a variable into the session
$bar = $_SESSION['bar'];//Retrieve a variable from the session
在您的情况下,您可以将u变量存储到会话中,并在提交后检索它。
您是否有某种原因不只是通过表单传递此值?
答案 2 :(得分:0)
你必须运行
if (isset($_POST['submit'])){
global $u;
$u = 'yes';
}
之前的
if(!isset($u)){
echo 'the $u has no value';
} else if(isset($u)){
echo 'the $u has a value of yes';
}
PHP逐行读取代码,因此isset($ u)总是返回FALSE直到行$ u ='yes';跑了。