PHP 名前空間に見つからないレポートに Exception を使用する場合の問題について、具体的な例を挙げて詳しく説明します。

亚连
リリース: 2023-03-26 11:44:01
オリジナル
2607 人が閲覧しました

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 クラスのみを検索することもわかります。解決策は2つあります
1. グローバル空間を使用する例外を宣言します

use \Exception;
ログイン後にコピー

例外を使用する場合は、グローバル空間を使用するように宣言します

namespace TestExc;
try {    
throw new \Exception('throw exception');
} catch(\Exception $ex) {    
echo $ex->getMessage();
}123456
ログイン後にコピー

関連知識:

名前空間が定義されていない場合、すべてのクラスと関数はPHPと同じグローバル空間で定義されています。 名前空間の概念を導入する前と同じです。名前に接頭辞を付けると、その名前が別の名前空間にある場合でも、その名前がグローバル空間にあることを示します。

関数と定数の場合、関数または定数が現在の名前空間に存在しない場合、PHP はグローバル空間で関数または定数を使用するようにフォールバックします。

上記は、PHP 名前空間のエラー報告に関する質問をまとめたものです。将来お役に立てれば幸いです。

関連記事:

PHP名前空間について(コード例と組み合わせて、シンプルで分かりやすい)

PHP名前空間(コードと組み合わせて詳しい回答)

コードと組み合わせてロールを紹介php の詳細 ドメイン

以上がPHP 名前空間に見つからないレポートに Exception を使用する場合の問題について、具体的な例を挙げて詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート