2010-11-26 42 views
0

如何使用全局關鍵字,以便當我按下提交按鈕時,我可以設置全局關鍵字,使腳本的頂部工作?PHP全局問題

位於腳本的頂部。

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

您必須運行

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

PHP逐行讀取的代碼行

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

之前,所以isset($ U)總是直到該行返回FALSE $ U ='是';運行。

+0

的訂單,但我需要它周圍的其他方式?這是否可以擊敗全局變量的目的是什麼? – HELP 2010-11-26 10:14:28

1

這不是全球性的意思。全局意味着變量可以在函數等內部被訪問。你可能想使用會話。這包括呼叫

sesssion_start(); 

某處(通常是腳本的頂部)。 變量然後可以做

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

在你的情況,你將存儲ü變量到會話後提交檢索存儲和檢索。

是否有某些原因,您不只是通過表單傳遞此值?

2

全球涉及的範圍,而不是命令的執行

如果代碼兩件是全球性的,即不包含進功能,在「全局」關鍵字沒有作用,因爲它們是在同一個範圍

作爲另一個答案正確地指出的那樣,你的問題是執行的問題,而不是一個範圍問題