首頁 > 後端開發 > php教程 > 在PHP命名空間中使用Exception報錯not found的問題,結合具體實例詳細為你講解

在PHP命名空間中使用Exception報錯not found的問題,結合具體實例詳細為你講解

亚连
發布: 2023-03-26 11:44:01
原創
2648 人瀏覽過

當一個php檔案聲明了命名空間,則此檔案中使用類別時,必須指定是在哪個命名空間中,否則就會報錯,原因是在當前空間中找不到這個類,PHP核心類別也會有這個問題,範例:

namespace TestExc;
try {    
throw new Exception('throw exception');
} 
catch(Exception $ex) 
{    
echo $ex->getMessage();
}1234567
登入後複製

執行以上程式碼,報錯:

PHP Fatal error:  Class 'TestExc\Exception' not found in /private/var/folders/sr/1sh63qr542x9h61w4t7wrk200000gn/T/CodeRunner/Untitled.php on line 61
登入後複製

從報錯中也可以看到,雖然Exception是PHP核心類,但程式只會在目前空間中尋找Exception類,有兩種解決方法 
1. 宣告使用全域空間的Exception

use \Exception;
登入後複製

使用Exception時宣告為使用全域空間的

namespace TestExc;
try {    
throw new \Exception('throw exception');
} catch(\Exception $ex) {    
echo $ex->getMessage();
}123456
登入後複製

相關知識:

如果沒有定義任何命名空間,所有的類別與函數的定義都是在全域空間,與PHP引入命名空間概念前一樣。在名稱前加上前綴 \ 表示該名稱是全域空間中的名稱,即使該名稱位於其它的命名空間中也是如此。

對於函數和常數來說,如果目前命名空間中不存在該函數或常數,PHP 會退而使用全域空間中的函數或常數。

上面是我整理給大家的關於PHP命名空間報錯的問題,希望今後會對大家有幫助。

相關文章:

關於PHP的命名空間(結合程式碼實例,簡單粗暴易懂)

 php命名空間(結合程式碼詳細解答)

結合程式碼詳細介紹php中的作用域

#

以上是在PHP命名空間中使用Exception報錯not found的問題,結合具體實例詳細為你講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板