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

名前空間を使用するPHP


はじめに

名前空間のクラス、関数、または定数は、次の方法で使用できます。

  • 現在の名前空間でクラスを使用する
  • 現在の名前空間に関連する名前空間を指定する
  • 名前空間の完全修飾名を付ける

現在の名前空間から

この例では、名前空間がtest1.phpからロードされます。名前空間なしで参照される関数またはクラス名は、現在の名前空間にあるものにアクセスします

#test1.php
<?php
namespace myspace\space1;
const MAX = 100;
function hello() {echo "hello in space1\n";}
class myclass{
   static function hellomethod() {echo "hello in space1\n";}
}
?>

このファイルを次のコードで使用します

<?php
namespace myspace;
include 'test1.php';
const MAX = 200;
function hello() {echo "hello in myspace\n";}
class myclass{
   static function hellomethod() {echo "hello in myspace\n";}
}
hello();
myclass::hellomethod();
echo MAX;
?>

出力

hello in myspace
hello in myspace
200

相対名前空間の使用

次の例では、関数とクラスに相対名前空間を使用しています

<?php
namespace myspace;
include 'test1.php';
const MAX = 200;
function hello() {echo "hello in myspace\n";}
class myclass{
   static function hellomethod() {echo "hello in myspace\n";}
}
space1\hello();
space1\myclass::hellomethod();
echo space1\MAX;
?>

出力

上記のコードは次の出力を示しています

hello in space1
hello in space1
100

完全修飾名前空間

関数とクラスには絶対名前空間名が付けられています

<?php
namespace myspace;
include 'test1.php';
const MAX = 200;
function hello() {echo "hello in myspace\n";}
class myclass{
   static function hellomethod() {echo "hello in myspace\n";}
}
\myspace\hello();
\myspace\space1\hello();
\myspace\myclass::hellomethod();
\myspace\space1\myclass::hellomethod();
echo \myspace\MAX . "\n";
echo \myspace\space1\MAX;
?>

出力

上記のコードは次の出力を示しています

hello in myspace
hello in space1
hello in myspace
hello in space1
200
100

  1. PHPの名前空間キーワードとは何ですか?

    この記事では、PHPの名前空間について学習します。 PHPでは、大規模なアプリケーションを作成する場合、またはサードパーティのアプリケーション/ライブラリを統合する場合、クラス名と関数名が衝突する可能性があります。したがって、これらの問題を回避するために、PHPの「名前空間」は、関連するクラス、インターフェース、関数、および定数をグループ化する方法を提供します。 以下の名前空間の宣言の構文を見てみましょう。 構文 <?php    namespace MyfirstNamspace {       function welcome()

  2. C#のネストされた名前空間とは何ですか?

    名前空間内の名前空間は、C#ではネストされた名前空間と呼ばれます。これは主に、コードを適切に構造化するために行われます。 外部名前空間があります- namespace outer {} その中に、外部名前空間内に内部名前空間があります- namespace inner {    public class innerClass {       public void display() {          Console.WriteLine("Inner Namespace&quo