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