PHP全球问题
如何使用全局关键字,以便在按下submit按钮时设置全局关键字,以便脚本的顶部工作 位于脚本顶部PHP全球问题,php,Php,如何使用全局关键字,以便在按下submit按钮时设置全局关键字,以便脚本的顶部工作 位于脚本顶部 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'; } 位于脚本的底部 if(!isset($u)){
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';
}
位于脚本的底部
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';
}
你必须运行
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';正在运行。您必须运行
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';运行。这不是global的意思。全局意味着可以在函数等内部访问变量。您可能想要使用会话。这包括打电话
sesssion_start();
某个地方(通常是脚本的顶部)。
然后可以通过执行以下操作来存储和检索变量
$_SESSION['name'] = $foo;//Store a variable into the session
$bar = $_SESSION['bar'];//Retrieve a variable from the session
在您的情况下,您应该将u变量存储到会话中,并在提交后检索它
您不只是通过表单传递此值是有原因的吗?这不是global的意思。全局意味着可以在函数等内部访问变量。您可能想要使用会话。这包括打电话
sesssion_start();
某个地方(通常是脚本的顶部)。
然后可以通过执行以下操作来存储和检索变量
$_SESSION['name'] = $foo;//Store a variable into the session
$bar = $_SESSION['bar'];//Retrieve a variable from the session
在您的情况下,您应该将u变量存储到会话中,并在提交后检索它
您不只是通过表单传递此值是有原因的吗?全局与范围相关,而不是与执行顺序相关 如果两段代码都是全局的,即不包含在函数中,“global”关键字无效,因为它们在同一范围内
正如另一个答案正确指出的那样,您的问题是执行顺序问题,而不是范围问题。全局与范围有关,而不是与执行顺序有关 如果两段代码都是全局的,即不包含在函数中,“global”关键字无效,因为它们在同一范围内
正如另一个答案正确指出的那样,您的问题是执行顺序问题,而不是范围问题,但我需要它的另一种方式,这是否违背了全局变量的用途?为什么您需要它的另一种方式,你想解决什么?但我需要它的另一种方式,这是否违背了全局变量的目的?为什么你需要它的另一种方式,你想解决什么?