Fatal error: Call to undefined function_PHP教程

來源:互聯網
上載者:User
PHP常見錯誤處理之致命錯誤(一)----函數未定義 一、錯誤類型:PHP致命錯誤Error type: PHP Fatal errorFatal error: Call to undefined function (a) in (b) on line (c) 二、錯誤描述:該錯誤報表表示你正企圖調用未經定義的函數(function),其中a----表示未定義的函數名;b----出現該段指令碼的路徑;c----企圖調用未定義函數的行號。d----第二次定義該函數時的行號。 三、原因及解決方案:原因1:你的確沒有聲明過該函數。例如,直接調用下面的函數myFunction();// 這雷根本就沒有這個函數結果如下Fatal error:Call to undefinedfunction myFunction()in(path) on line 1解決:仔細檢測你的程式中是否聲明過該函數。 原因2:你在函式宣告時用的名稱和你在調用時用的名稱不相同,例如function myFunction(){// do something}myFuntion();// 這裡少寫了一個字母C解決:這是很多初學者最容易犯的一個錯誤。有時候因為少寫,或者多寫,寫錯一個字母而導致很長時間都檢查不出來。 原因3:你在老版本的PHP下調用新版本的PHP內建函數而產生的錯誤。因為你的老版本中這個PHP內建函數根本就不存在。例如,你在PHP老版本中調用mime_content_type()Fatal error:Call to undefinedfunction mime_content_type()解決:翻開PHP手冊仔細核對你所使用的內建函數到底適用於PHP的哪些版本。在PHP手冊當中對每一個內建函數都註明了詳細的版本限制。例如(PHP 4 >= 4.3.0, PHP 5).所以,解決辦法就是升級你的PHP版本,或者改換同類型的其他內建函數。 原因4:你對該函數的調用代碼,寫在了與函式宣告不同的檔案中。例如,你在a.php檔案中寫了這樣的代碼myFunction();而你的函式宣告卻在b.php中function myFunction(){// do something}解決:這種情況一般發生在PHP初學者身上,他們在調用函數時卻忘了PHP不會自動的進行檔案關聯或引用。也就是說上面的情況中a.php與b.php根本就不會產生任何關係。這個時候你需要使用include()之類的函數將兩者關聯起來。 原因5:你對該函數的調用代碼,寫在了與函式宣告不同的檔案中,你也引入了該檔案。但是你的函數調用代碼位於引入檔案代碼之前。例如,你在a.php執行函數調用,而在b.php中聲明函數a.php代碼myFunction();include('b.php');b.php代碼function myFunction(){ echo '123';}解決:像上面的代碼這樣,在執行時就會報錯。因為PHP在執行函數調用時找不到該函數的聲明。所以,絕對不要把函數的調用寫在函式宣告檔案被引入之前。當然,如果你是在同一個php檔案當中,你完全可以把調用函數寫在函式宣告之前。原因6:你連續兩次使用相同名稱來定義一個函數,例如function myFunction(){} function myFunction(){}結果如下Fatal error:Cannot redeclare myfunction()(previously declared in(path):2)in(path) on line 1解決:找到已經聲明過的函數,看看是什麼需要導致你再次定義了它。如果只是單純的忘記之前已經定義過,那麼將其中一個聲明刪除掉就是。當然,你的情況可能給複雜。比如你的指令檔排列異常混亂,並且你可能使用了大量的include()之類的函數,這將導致你很難從混亂的代碼當中理清思路。

http://www.bkjia.com/PHPjc/477759.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477759.htmlTechArticlePHP常見錯誤處理之致命錯誤(一)----函數未定義 一、錯誤類型:PHP致命錯誤 Error type: PHP Fatal error Fatal error: Call to undefined function (a) in (b) on...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.