php函式內不能訪問函式外的變數原因

2022-08-01 12:18:10 字數 415 閱讀 9399

執行如下**:

$i = 10;

function my()

my();

xdebug顯示是:undefined variable

以前也知道有這個問題存在,即函式內部不可以訪問外部的變數,如果想訪問,如上,則在函式內部加 global $i(或者寫成:$globals['i'])。 

使用者在php中定義的變數都可以在乙個hashtable中找到,當php中定義乙個變數,核心會自動的把它的資訊儲存到乙個用hashtable實現的符號表裡。 

當使用者在php中呼叫乙個函式或者類的方法時,核心會建立乙個新的符號表並啟用之,這也是為什麼我們無法在函式中使用函式外定義的變數的原因(因為他們分屬兩個符號表,乙個當前作用域,乙個全域性作用域的),如果不是在乙個函式裡,則全域性作用域的符號表處於啟用狀態。

php函式內不能訪問函式外的變數原因

執行如下 i 10 function my my xdebug顯示是 undefined variable 以前也知道有這個問題存在,即函式內部不可以訪問外部的變數,如果想訪問,如上,則在函式內部加 global i 或者寫成 globals i 使用者在php中定義的變數都可以在乙個hashtab...

外罰函式與內罰函式

之前的兩篇blog討論了等式最優化的最優性條件和不等式最優化的最優性條件。關於無約束問題,我們通過最優性條件能夠直接求出解,那麼這種方法稱為解析法。但是,對於有約束問題的一般情況是,我們很難通過最優性條件來得到最優解。通常情況下,使用kkt條件求解時,我們要求與約束個數同階的矩陣的逆。我們可以容易驗...

php函式不能直接訪問外部變數

因需要玩了一下php,對於熟悉c語法的我來說,有時候被php哭笑不得,最近經常踩坑 f 結果沒有輸出,原來,php函式不能直接訪問外部變數,my god.改為 f 或者直接從函式中傳引數進去吧。而我們接觸過的js和c語言在這點上是一致的,給個贊。再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂...