php中為什麼函式在未被定義前呼叫也能成功執行

2021-05-30 21:52:26 字數 1143 閱讀 2660

1樓:嘟嘟樂悠

首先php不是單純的按照行來邊解釋邊執行的,而是先由zend引擎翻譯php**到zend二進位制操作碼,然後再去執行操作碼。

對於function的位置,因為函式的作用域是全域性的,所以只要定義了,那麼就可以在任意位置去呼叫它。但是除了兩種情況,函式必須在其呼叫之前定義,一是在條件語句中定義的函式,二是在函式中定義的函式。在php的文件中有這樣的示例,你可以去看看,我就不多解釋了。

2樓:匿名使用者

這個和其它程式語言一樣,你呼叫fun()時,它自動會去解析fun()這個函式體,所以,無論你是放在前面還是放在後面,或者放在另外一個檔案中,都會被成功執行的。

3樓:匿名使用者

php是叫編譯,你呼叫之前,這個方法已經在記憶體中了,而申明變數的話,你不申明,就不會在記憶體中開闢控制元件去儲存,大概就是這個意思

而客戶端指令碼是逐行執行,所以js的方法必須先有了才能呼叫

為什麼php的函式呼叫在函式之前也能使用,頁面執行**不應該是從上到下的嗎?

4樓:莫路草根

函式不是普通**。不能把函式當做普通函式來看待的。

當程式從上 往下執行的時候,遇到函式,程式會找到這個函式並且執行。所以現在的框架都是把函式封裝在一個檔案裡面,在使用的時候就從這個檔案去呼叫就可以了。

5樓:水四幸

可能是php自身內部機制,最好不要這樣寫,還是先宣告後呼叫吧。

6樓:無名指的空白

php的好像可以,其他的好像不行!至少,我python不行

php自定義函式不能呼叫是怎麼回事 10

7樓:奧丁神王

注意到你在使用bai_html這個自

du定義方法之前,只載入zhi執行了一個

檔案dao

require 'include/global.php';

這個_html方法你是專放在global.php檔案中嗎,如果不屬是,問題就是,你沒有載入包含自定義函式的檔案。

8樓:匿名使用者

少個分號mysql_close

mysql_close();

php呼叫自定義函式,php自定義函式中怎麼呼叫類中方法

引用符號。不加引用時候,你傳進去的 a被複制了一份,然後你在函式裡面改變 a實際上是改變複製的那個,原來的那個不變,退出函式後 a還是原來那個值。加了引用符號后里面的 a就是外面的 a的引用,修改了函式裡面的 a就等於修改了外面的 a。function 是用來定義函式的,呼叫的時候不用functio...

c語言後定義函式前面在函式原型中為什麼要加

傳遞引數為陣列或者指標。形參都是以指標形式表示。你的例,第一個引數的實參為int型,第二個的實參可以是int陣列名 第一元素地址 int型指標 指標的值就是地址 int值的地址 x int 是一個型別 就好比如char也是一個型別。double也是一個型別。int型別 int 型別這是兩個型別 加 ...

php中isset函式有什麼功能

isset 函式用於檢測變數是否已設定並且非null。如果已經使用unset 釋放了一個變數之後,再通過isset 判斷將返回false。如果使用isset 測試一個被設定成null的變數,將返回false。同時要注意的是null字元 0 並不相等於php的null常量。php版本要求 php 4,...