正如我們所知,全球關鍵字使變量(或對象,數組)可見,我們正在處理全球關鍵字
<?php
$some_var = 'some string';
function __test(){
global $some_var;
echo $some_var; // some string
}
但是,一些開發公司仍然使用global關鍵字職能以外的電流函數內起初看起來它對我沒有任何意義。
嗯,問題是:在函數外部使用'global'關鍵字是否有意義?
正如我們所知,全球關鍵字使變量(或對象,數組)可見,我們正在處理全球關鍵字
<?php
$some_var = 'some string';
function __test(){
global $some_var;
echo $some_var; // some string
}
但是,一些開發公司仍然使用global關鍵字職能以外的電流函數內起初看起來它對我沒有任何意義。
嗯,問題是:在函數外部使用'global'關鍵字是否有意義?
從docs:
使用全局關鍵字在函數外是不是一個錯誤。如果文件包含在函數中,則可以使用它。
基本上,你可以讓你的函數膽量與你的函數聲明不同。這些膽量將被納入該功能。如果您單獨看到一個用戶使用global
以外的函數,這會給人一種印象,但事實是,當解釋此代碼時,它將從中的一個函數中解釋爲。
$name = "Jonathan";
function doSomething() {
include('functionGuts.php');
}
當我們functionGuts.php
文件的內容可能是:
global $name;
echo "Hello, " . $name;
當自己的觀察,functionGuts.php
將給人的印象是global
正在使用外部的功能的,而實際上它是像這樣使用:
$name = "Jonathan";
function doSomething() {
global $name;
echo "Hello, " . $name;
}
函數之外的全局關鍵字根本沒有做任何事情。但該文件可能包含在一個函數中。
我使用它的另一件事不是讓我的代碼可讀和更有條理。任何我想在函數中使用全局關鍵字訪問的變量,我在主文件中聲明瞭全局變量,所以只需簡短一眼,我知道它是作爲全局引用的。 (意思是不要重命名,因爲其他地方在其他地方使用... :))
您確定它正在使用的範圍? – 2012-04-25 01:00:32
我甚至在index.php文件中看到「global $ some_var」 - 實際上它不會在任何函數中。我確信範圍 – Yang 2012-04-25 01:02:13
@metal_fan我懷疑你在一個單獨的文件中看到了函數的內涵。 – Sampson 2012-04-25 01:10:48