您可以使用全局關鍵字:
$a = "Hello World";
$b = "Hello World";
function outputStrings(){
global $a, $b;
echo $a." - ".$b;
}
$b = "Goodbye World";
outputStrings(); // ouputs "Hello World - Goodbye World"
然而,它最好不要使用這種結構。它通常令人困惑,並會使您的代碼難以維護。 Wordpress在他們的代碼庫中使用了這種方法,這使得非常棘手的調試成爲可能。其他插件和代碼可以插入和修改全局變量,更改腳本的輸出。
會是什麼更好的將是兩種:
使用一個面向對象的結構,爲您的Web應用程序。
這樣你就可以使用對象而不是隨機的全局變量。這解決了在腳本過程中意外覆蓋全局變量的問題。它還有助於正確組織變量,因此有關用戶的所有變量都可以在User
類中。像這樣構建它更有意義。
class User {
private $firstName;
private $secondName;
private $gender;
public function __construct($fname, $sname, $gend){
$this->firstName = $fname;
$this->secondName = $sname;
$this->gender = $gend;
}
public function outputDetails(){
echo $this->firstName." ".$this->secondName." is ".$this->gender;
}
}
$user = new User("Thomas", "Clayson", "Male");
$user->outputDetails();
變量傳遞到就像你在你的例子已經證明功能
。這是這樣做的普遍接受的標準方式。你應該總是像這樣傳遞變量,它可以幫助你定義範圍和適當的結構。它也意味着你知道變量的價值是什麼,因爲你擁有它們並將它們傳遞給函數,而不僅僅是從全局範圍中抽取變量。
簡單的解決方案,不要在PHP或JavaScript中使用全局變量。 – zzzzBov 2012-02-09 17:08:14
你不想這樣做。看到http://stackoverflow.com/questions/5166087/php-global-in-functions/5166527#5166527 – Gordon 2012-02-09 17:10:44
每當我看到'全球'被使用時,我會畏縮。 – MetalFrog 2012-02-09 17:14:40