摘要:的全局變量看起來很好用,但稍有不慎,很容易被套住。比如如果一個簡單的配置文件如下當我們想要使用這個的時候,都知道使用就行了。沒錯,這樣可以。
php 的全局變量看起來很好用,但稍有不慎,很容易被套住。
比如: 如果一個簡單的php配置文件如下:
$name="Yi_Zhi_Yu";
當我們想要使用這個$name的時候,都知道使用include就行了。沒錯,這樣可以。但假如我想把這個$name作為一個全局變量使用,以方便統一修改呢
也容易:
include("./config.inc"); global $name; echo $name; //Yi_Zhi_Yu
那么問題來了,假如某個函數里我要用這個全局變量呢,或許你會這么寫
function test() { include("./config.inc"); //這里加載是錯誤的 global $name; var_dump($name); } test();
Sorry, 你這樣是得不到這個變量值得,得到的僅僅是個null
這就是我在實際中遇到的一個坑,即文件加載的全局變量的初始化只能在整個腳本的最外層,我說的最外層是指不能被包含在任何的函數體或者類里面
include("./config.inc"); //最外層初始化全局變量 function test() { global $name; //使用的時候定義其全局屬性 echo $name; //Yi_Zhi_Yu } test();
那再來一個問題,一個在test里面被定義了全局屬性的變量(假設$age=25),假如在外面被修改了值($age=27),然后這個變量($age)再在另一個函數中調用,這個時候的這個$age應該是哪個值呢,代碼如下,是被初始化的時候值(25),還是在外面被修改了的值(27)呢。
function test() { global $age; $age=25; } function test2() { global $age; var_dump($age); //這個值應該是什么? } test(); var_dump($age); $age=27; test2();
沒錯,這個值應該是27, 這就是全局變量,只不過這種定義和初始化都是在一個函數體內完成的(不過這種方式不推薦,一般都是在最上面我說的配置文件中初始化的,只在使用的時候定義其全局屬性,但不會在代碼中修改其值,僅僅作為配置項獲取)。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30219.html
摘要:話說當下一共有種運行模式,分別是和模塊模式。使用,全稱進程管理器進行管理。工作原理啟動時載入進程管理器進程管理器自身初始化,啟動多個解釋器進程并等待來自的連接當客戶端請求到達時,進程管理器選擇并連接到一個解釋器。 我們知道 workerman 程序需要在php-cli模式下運行,也就是命令行模式,這塊我們有必要了解一下。 話說PHP當下一共有4種運行模式,分別是CGI、FastCGI、...
摘要:而類的實例并不會影響類的靜態變量,只是會修改對象實例本身的值,所以后面兩個的結果總是同樣,如果我們使用和結果也將僅僅是靜態變量變化后的結果,與類的實例無關以上是對和的暫時做的了解的總結,如有紕漏,請及時指正 概念 python 的classmethod 與staticmethod 這兩個有什么區別? 二者又有什么聯系?在google和baidu之后, 得到的大致的聯系就是二者都是對類的...
摘要:起步引擎提供了另種管理設置值的途徑。假設我們需要為我們擴展定義一個值并用函數返回它的內容。在為了避免命名空間的沖突,我們擴展的名字作為所有值的前綴。僅僅是一種約定,一個句點用來分隔擴展名和說明性的初始設定名字。 起步 Zend引擎提供了另種管理設置值(INI)的途徑。現在弄個簡單的,我們經常看到php.ini里有諸如 display_errors = On 這樣的全局設置。假設我們需要...
摘要:如果現有子進程中的線程總數不能滿足負載,控制進程將派生新的子進程。為解決線程的并發問題,引入了線程安全資源管理器。的全拼,用來存放各個線程的鏈表。 PHP 進階之路 - 零基礎構建自己的服務治理框架(上) PHP 進階之路 - 零基礎構建自己的服務治理框架(下) PHP 進階之路 - 億級 pv 網站架構的技術細節與套路 PHP 進階之路 - 億級 pv 網站架構實戰之性能壓榨 注...
摘要:本文介紹筆者自己寫的語法糖擴展,擴展了一種全新的超全局變量獲取方式。優秀的語法糖,應該是一種靈魂思想的注入,簡單寫法的應用。非常重要的一點是它很簡單項目背景這個出發點很簡單,從擴展名稱我們應該能猜到它是做什么的。 奇技指南語法糖往往給程序員提供了更實用的編碼方式,可以使代碼更簡潔流暢,語義更自然。本文介紹筆者自己寫的PHP語法糖擴展,擴展了一種全新的PHP超全局變量獲取方式。本文作者...
閱讀 1213·2021-11-25 09:43
閱讀 1969·2021-11-11 10:58
閱讀 1187·2021-11-08 13:18
閱讀 2659·2019-08-29 16:25
閱讀 3509·2019-08-29 12:51
閱讀 3307·2019-08-29 12:30
閱讀 748·2019-08-26 13:24
閱讀 3683·2019-08-26 10:38