PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPで名前空間(namespace)を定義する方法

はじめに

PHPでは、クラス・関数・定数を名前空間内で宣言すると、それらへのアクセス方法に影響します。ただし、名前空間の中には他のPHPコードも記述することが可能です。新しい名前空間を宣言するには、PHPの namespace キーワードを使用します。

重要なルールとして、拡張子が .php のファイル内で名前空間を宣言する場合、その宣言は <?php タグの直後、つまりHTMLなどの他のコードより前に記述しなければなりません。

基本的な記述例

<?php
namespace myspace;
class myclass{
    //
}
function hello() {
    echo "Hello World\n";
}
?>

名前空間宣言がファイル先頭にない場合のエラー

名前空間の宣言がファイルの先頭にない場合、PHPパーサーは致命的なエラー(Fatal Error)を発生させます。

エラーになるコード例

<html>
<body>
Hello world
<?php
namespace myspace;
function hello() {
    echo "Hello World\n";
}
use myspace;
myspace\hello();
?>
</body>
</html>

出力結果

上記のコードを実行すると、次のようなエラーが表示されます。

PHP Fatal error: Namespace declaration statement has to be the very first statement or after any declare call in the script

このエラーメッセージは、「名前空間の宣言はスクリプトの最初のステートメントであるか、declare呼び出しの直後に置かなければならない」ことを意味しています。

declare文との併用

名前空間宣言より前に記述できるのは、declare 構文のみです。例えば、厳格な型チェックを有効にする strict_types を指定する場合は、以下のように記述します。

正しい記述例

<?php
declare (strict_types=1);
namespace myspace;
function hello() {
    echo "Hello World\n";
}
use myspace;
myspace\hello();
?>

まとめ

  • 名前空間は namespace キーワードで宣言する
  • 宣言は必ずファイルの最上部(<?php タグの直後)に記述する
  • 名前空間宣言の前に配置できるのは declare 構文のみ
  • ルールに違反すると Fatal Error が発生する

  1. PHPの名前空間(namespace)とは?基本の使い方とuseキーワードによるエイリアスを解説

    この記事では、PHPにおける名前空間(namespace)について詳しく解説します。大規模なアプリケーションを開発する場合や、サードパーティ製のライブラリをプロジェクトに組み込む際には、クラス名や関数名が衝突してしまう可能性があります。こうした問題を回避するために、PHPの「名前空間」は、関連するクラス、インターフェース、関数、定数をひとつのグループとしてまとめる仕組みを提供しています。まずは、名前空間を宣言する基本的な構文から見ていきましょう。構文<?php    namespace MyfirstNamespace {  &

  2. C#のパッケージと名前空間(namespace)の基本を解説

    Javaにおける「パッケージ」に相当する機能として、C#言語には「名前空間(namespace)」が用意されています。本記事では、両者の役割の違いと、C#における名前空間の基本的な使い方をサンプルコード付きで解説します。 Javaのパッケージとは Javaのパッケージは、主に以下の目的で使用される仕組みです。 名前の衝突(ネーミングコンフリクト)を防ぐ クラスやメンバーへのアクセス制御を行う クラス、インターフェース、列挙型、アノテーションの検索・配置・利用を容易にする C#の名前空間(namespace)とは 名前空間は、ある一連の名前を別の一連の名前から切り離して管理するための仕組みで