Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP全球问题_Php - Fatal编程技术网

PHP全球问题

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)){

如何使用全局关键字,以便在按下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)){
    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”关键字无效,因为它们在同一范围内


正如另一个答案正确指出的那样,您的问题是执行顺序问题,而不是范围问题

,但我需要它的另一种方式,这是否违背了全局变量的用途?为什么您需要它的另一种方式,你想解决什么?但我需要它的另一种方式,这是否违背了全局变量的目的?为什么你需要它的另一种方式,你想解决什么?