成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php global 全局變量小談

Lionad-Morotar / 2032人閱讀

摘要:的全局變量看起來很好用,但稍有不慎,很容易被套住。比如如果一個簡單的配置文件如下當(dāng)我們想要使用這個的時候,都知道使用就行了。沒錯,這樣可以。

php 的全局變量看起來很好用,但稍有不慎,很容易被套住。

比如: 如果一個簡單的php配置文件如下:

$name="Yi_Zhi_Yu";

當(dāng)我們想要使用這個$name的時候,都知道使用include就行了。沒錯,這樣可以。但假如我想把這個$name作為一個全局變量使用,以方便統(tǒng)一修改呢

也容易:

include("./config.inc");
global $name;
echo $name; //Yi_Zhi_Yu

那么問題來了,假如某個函數(shù)里我要用這個全局變量呢,或許你會這么寫

function test()
{
    include("./config.inc"); //這里加載是錯誤的
    global $name;
    var_dump($name);
}
test();

Sorry, 你這樣是得不到這個變量值得,得到的僅僅是個null

這就是我在實際中遇到的一個坑,即文件加載的全局變量的初始化只能在整個腳本的最外層,我說的最外層是指不能被包含在任何的函數(shù)體或者類里面

include("./config.inc"); //最外層初始化全局變量
function test()
{
    global $name; //使用的時候定義其全局屬性
    echo $name; //Yi_Zhi_Yu
}
test();

那再來一個問題,一個在test里面被定義了全局屬性的變量(假設(shè)$age=25),假如在外面被修改了值($age=27),然后這個變量($age)再在另一個函數(shù)中調(diào)用,這個時候的這個$age應(yīng)該是哪個值呢,代碼如下,是被初始化的時候值(25),還是在外面被修改了的值(27)呢。

function test()
{
    global $age;
    $age=25;
}
function test2()
{
    global $age;
    var_dump($age); //這個值應(yīng)該是什么?
}

test();
var_dump($age);
$age=27;
test2();

沒錯,這個值應(yīng)該是27, 這就是全局變量,只不過這種定義和初始化都是在一個函數(shù)體內(nèi)完成的(不過這種方式不推薦,一般都是在最上面我說的配置文件中初始化的,只在使用的時候定義其全局屬性,但不會在代碼中修改其值,僅僅作為配置項獲取)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30219.html

相關(guān)文章

  • workerman / 小談PHP中的幾種運(yùn)行模式

    摘要:話說當(dāng)下一共有種運(yùn)行模式,分別是和模塊模式。使用,全稱進(jìn)程管理器進(jìn)行管理。工作原理啟動時載入進(jìn)程管理器進(jìn)程管理器自身初始化,啟動多個解釋器進(jìn)程并等待來自的連接當(dāng)客戶端請求到達(dá)時,進(jìn)程管理器選擇并連接到一個解釋器。 我們知道 workerman 程序需要在php-cli模式下運(yùn)行,也就是命令行模式,這塊我們有必要了解一下。 話說PHP當(dāng)下一共有4種運(yùn)行模式,分別是CGI、FastCGI、...

    darkbaby123 評論0 收藏0
  • python classmethod 與 staticmethod 小談

    摘要:而類的實例并不會影響類的靜態(tài)變量,只是會修改對象實例本身的值,所以后面兩個的結(jié)果總是同樣,如果我們使用和結(jié)果也將僅僅是靜態(tài)變量變化后的結(jié)果,與類的實例無關(guān)以上是對和的暫時做的了解的總結(jié),如有紕漏,請及時指正 概念 python 的classmethod 與staticmethod 這兩個有什么區(qū)別? 二者又有什么聯(lián)系?在google和baidu之后, 得到的大致的聯(lián)系就是二者都是對類的...

    keke 評論0 收藏0
  • PHP7擴(kuò)展開發(fā)(二):配置項與全局數(shù)值

    摘要:起步引擎提供了另種管理設(shè)置值的途徑。假設(shè)我們需要為我們擴(kuò)展定義一個值并用函數(shù)返回它的內(nèi)容。在為了避免命名空間的沖突,我們擴(kuò)展的名字作為所有值的前綴。僅僅是一種約定,一個句點(diǎn)用來分隔擴(kuò)展名和說明性的初始設(shè)定名字。 起步 Zend引擎提供了另種管理設(shè)置值(INI)的途徑?,F(xiàn)在弄個簡單的,我們經(jīng)??吹絧hp.ini里有諸如 display_errors = On 這樣的全局設(shè)置。假設(shè)我們需要...

    Mr_houzi 評論0 收藏0
  • PHP 進(jìn)階之路 - 揭開 PHP 線程安全的神秘面紗

    摘要:如果現(xiàn)有子進(jìn)程中的線程總數(shù)不能滿足負(fù)載,控制進(jìn)程將派生新的子進(jìn)程。為解決線程的并發(fā)問題,引入了線程安全資源管理器。的全拼,用來存放各個線程的鏈表。 PHP 進(jìn)階之路 - 零基礎(chǔ)構(gòu)建自己的服務(wù)治理框架(上) PHP 進(jìn)階之路 - 零基礎(chǔ)構(gòu)建自己的服務(wù)治理框架(下) PHP 進(jìn)階之路 - 億級 pv 網(wǎng)站架構(gòu)的技術(shù)細(xì)節(jié)與套路 PHP 進(jìn)階之路 - 億級 pv 網(wǎng)站架構(gòu)實戰(zhàn)之性能壓榨 注...

    pepperwang 評論0 收藏0
  • SG :一個簡單的PHP語法糖擴(kuò)展

    摘要:本文介紹筆者自己寫的語法糖擴(kuò)展,擴(kuò)展了一種全新的超全局變量獲取方式。優(yōu)秀的語法糖,應(yīng)該是一種靈魂思想的注入,簡單寫法的應(yīng)用。非常重要的一點(diǎn)是它很簡單項目背景這個出發(fā)點(diǎn)很簡單,從擴(kuò)展名稱我們應(yīng)該能猜到它是做什么的。 奇技指南語法糖往往給程序員提供了更實用的編碼方式,可以使代碼更簡潔流暢,語義更自然。本文介紹筆者自己寫的PHP語法糖擴(kuò)展,擴(kuò)展了一種全新的PHP超全局變量獲取方式。本文作者...

    warkiz 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<