好了,你爲什麼不只是測試? ;-)
注:不那麼容易,因爲你會覺得 - 閱讀完整的答案;-)
調用hello_testing();
功能,無需設置變量:
hello_testing();
我沒有輸出 - 這表示isset
返回false
。
調用函數,設置變量之後:
$conditional_random = 'blah';
hello_testing();
我得到的輸出:
foo is inside
這表明global
作品如預期,當變量被設置- 好,不應該有關於任何疑問^^
但請注意,isset
將返回false
如果一個變量設置,並null
!
見manual page of isset()
這意味着更好的測試將是:
function hello_testing() {
global $conditional_random;
var_dump($conditional_random);
}
hello_testing();
這顯示:
null
無提示:該變量存在!即使null
。
,因爲我沒有設置函數的變量外,它表明global
套變量 - 但它不會把值到它;這意味着它是null
如果尚未設置功能外。
雖然:
function hello_testing() {
//global $conditional_random;
var_dump($conditional_random);
}
hello_testing();
給出:
Notice: Undefined variable: conditional_random
證明,通知已啓用;-)
而且,如果全球沒有 「設置」 變量,前面的例子會給出相同的通知。
並且,最後:
function hello_testing() {
global $conditional_random;
var_dump($conditional_random);
}
$conditional_random = 'glop';
hello_testing();
給出:
string 'glop' (length=4)
(純粹是爲了證明我的例子不是欺騙^^)
在旁邊注意儘量遠離全球。這是意大利麪條代碼 – 2010-04-03 14:23:15
@ Manos的確定標誌我同意,但是如果你在Wordpress社區開發(作爲一個例子),或多或少不可能遠離全局變量或許多其他不好的約定。在我看來,如果您首先使用PHP,那麼您已經放棄了自己去忍受糟糕的編碼習慣,只需要知道相對安全的方式來處理您的問題。 – 2015-04-14 16:50:19