开发者

PHP global question

How can I use the global keyword so that when I press the submit button I can set the global keyword so that the top part of the script works?

located on top of the script.

if(!isset($u)){
    echo 'the $u has no value';
} else if(isset($u)){
    echo 'the $u has a value of yes';
}

located on bottom of the script.

if (isset($_POST['submit'])){
    global $u;
    $u = 'yes';
}
开发者_如何转开发


global is related to scope, not to order of execution

If both pieces of code are global, i.e. are not contained into functions, the 'global' keyword has no effect, because they are in the same scope

As another answer has correctly pointed out, your problem is an order of execution problem, not a scope problem


That's not what global means. Global means that the variable can be accessed inside functions and the like. You probably want to use Sessions. This involves calling

sesssion_start();

somewhere (usually the top of your script). Variables can then be stored and retrieved by doing

$_SESSION['name'] = $foo;//Store a variable into the session
$bar = $_SESSION['bar'];//Retrieve a variable from the session

In your case you would store u variable into the session and retrieve it after the submit.

Is there some reason you aren't just passing this value via the form?


You have to run the

if (isset($_POST['submit'])){
    global $u;
    $u = 'yes';
}

before the

if(!isset($u)){
    echo 'the $u has no value';
} else if(isset($u)){
    echo 'the $u has a value of yes';
}

PHP reads the code line by line, so isset($u) always return FALSE until the line $u = 'yes'; is run.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜