この記事では、PHP が名前空間を宣言する方法、空間要素にアクセスする 3 つの方法、および名前空間を導入する方法を紹介します。
##1.1 概要In大規模なプロジェクトでは、同じ名前のクラス、関数、定数が存在することがありますが、これらの要素を区別するために、これらの要素を異なる名前空間に保存できます。 1. ネームスペースは、プロジェクト内のクラス、関数、定数を保存するために使用されるパッケージです。 2. 名前空間キーワードを通じて名前空間を宣言します
##1.2 名前空間を宣言します##例:<?php
namespace China; // 定义命名空间
function getInfo () {
echo '我是中国人';
}
getInfo();
namespace USA; // 定义命名空间
function getInfo () {
echo '我是美国人';
}
getInfo();
?>
\namespace\ を使用してネームスペースを入力し、メソッドを呼び出します。 例:
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); \China\ getInfo(); ?>
効果:
1.3 マルチレベル名前空間
命名スペースの名前はマルチレベル (サブレベルの名前空間) にすることができます。
例: <?php
namespace China\Beijing\Shunyi; // 定义命名空间
function getInfo () {
echo 'China\Beijing\Shunyi';
}
getInfo(); // 非限定名称访问
namespace USA\Washington; // 定义命名空间
function getInfo () {
echo 'USA\Washington';
}
\USA\Washington\ getInfo(); // 完全限定名称访问
?>
1.4 スペース要素にアクセスする 3 つの方法
1. 非修飾名アクセス
2. 完全修飾名アクセス
3. 名前アクセスの制限
例: <?php
namespace China\Beijing\Shunyi; // 定义命名空间
function getInfo () {
echo 'China\Beijing\Shunyi';
}
namespace China\Beijing; // 定义命名空间
function getInfo () {
echo 'China\Beijing';
}
getInfo(); // 非限定名称访问
\China\Beijing\getInfo(); // 完全限定名称访问
Shunyi\getInfo(); // 限定名称访问
?>
2. use## を介して名前空間
パブリック スペースによりスペースが導入されます (パブリック パーツを削除します。パブリック パーツは 1 レベルのみに留まります) スペース要素
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi<br>'; } namespace China\Beijing; // 定义命名空间 function getInfo () { echo 'China\Beijing<br>'; } use China\Beijing\Shunyi; getInfo(); Shunyi\getInfo(); ?>ログイン後にコピー効果:
2.1 スペース要素の紹介
導入クラス: 使用
機能の紹介:機能を使う
定数を導入します: const を使用します
例: <?php
namespace China\Beijing\Shunyi; // 定义命名空间
class Student {
}
function getInfo() {
echo 'jdk';
}
const TYPE = 'CONST';
namespace USA; // 定义命名空间
// 引入类
use China\Beijing\Shunyi\Student;
$stu = new Student();
var_dump($stu);
echo '<br>';
// 引入函数
use function China\Beijing\Shunyi\getInfo;
getInfo();
echo '<br>';
// 引入常量
use const China\Beijing\Shunyi\TYPE;
echo TYPE;
?>
2.2 クラスと関数に別名を与える
導入したクラスや関数が現在の空間と同じ名前の場合は、導入したクラスや関数にエイリアスを付ける必要があります。
エイリアスを次のように使用します
例: <?php
namespace China\Beijing\Shunyi; // 定义命名空间
class Student {
}
namespace USA; // 定义命名空间
class Student {
}
use China\Beijing\Shunyi\Student as ChinaStudent;
$stu=new Student;
var_dump($stu);
echo '<br>';
$stu1=new ChinaStudent;
var_dump($stu1);
?>
2.3 パブリック スペース
ページの場合名前空間宣言スペースはありません。このページの要素はパブリック スペースにあります。 パブリックスペースは \ で表されます 例:
<?php function getInfo() { echo '李白<br>'; } \getInfo(); ?>
2.4 名前空間に関する考慮事項
1 、名前空間にはクラス、関数、const 定数のみを格納できます。 2. 最初の名前空間の前に、空白文字や header() を含むコードを含めることはできません。 3. インクルードされたファイルは、現在の名前空間に影響を与えません。 推奨学習: 「PHP ビデオ チュートリアル
」以上がPHPで名前空間を宣言および導入する方法の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。