PHP PHP

ホームページ  >  記事  >  バックエンド開発  >  Modern-php 書籍抜粋 (1) 名前空間 Huawei espace コンピュータ バージョンのダウンロード espace.net 特許 ルノー espac

Modern-php 書籍抜粋 (1) 名前空間 Huawei espace コンピュータ バージョンのダウンロード espace.net 特許 ルノー espac

WBOY
WBOYオリジナル
2016-07-29 08:54:291617ブラウズ

data-id="1190000004892254">

名前空間

名前空間の宣言

  • 名前空間は、PHP ファイルの先頭、

  • メーカーの名前空間、つまり以下で宣言されている "Oreilly" は、最も重要な名前空間です。世界的にユニーク。

  • <code><?php
    namespace Oreilly;</code>

    サブネームスペース

    <code><?php
    namespace Oreilly\ModernPHP;</code>
  • 追記: 同じ名前空間にあるすべてのクラス、インターフェイス、関数を同じ PHP ファイルで宣言する必要はありません
したがって、異なるファイルに同じ名前を記述することができます 複数のクラスの空間。

インポートとエイリアス


PHP に名前空間が導入される前、開発者は名前の競合を解決するために Zend スタイルのクラス名を使用していました

<code># Zend_Cloud_DocumentService_Adapter_WindowsAzure_Query => Zend/Cloud/DocumentService/Adapter/WindowsAzure/Query.php</p>
<p> しかし、ご覧のとおり、長すぎて許容できません。 ! ! </p>namespace は、この問題を解決するためにインポートとエイリアスを提供します。 <p>インポート、エイリアスは、バージョン 5.3 でクラス、インターフェイス、および名前空間のインポートをサポートします。 5.6 では関数と定数インポートのサポートを開始します。 </p>
<pre class="brush:php;toolbar:false"><code># namespace without alias
<?php
$response = new \Symfony\Component\HttpFoundation\Response('Oops',400);
$response->send();
$response2 = new \Symfony\Component\HttpFoundation\Response('Success',200);</code>
<code># namespace with Default alias 
use Symfony\Component\HttpFoundation\Response;
$response = new Response('Oops',400);
$response->send();</code>
<code># namespace with custom alias 
use Symfony\Component\HttpFoundation\Response as Res;
$response = new Res('Oops',400);
$response->send();</code>

注:

名前空間宣言と同じように、PHP ファイルの先頭、

  • シンボルを追加する必要はありません。最初は、PHP インポートが完了しているためです。

  • use はコンパイル時に使用されるため、グローバル スコープに指定する必要があります。

  • PHP5.6 以降では関数と定数をインポートできます。

    <code><?php
    use func Namespace\functionName;
    
    functionName();</code>
  • 定数のインポート:
<code><?php
use constant Namespace\CONST_NAME;

echo CONST_NAME;
</code>

実践的なヒント

複数のインポート

PHP ファイルに複数のクラス、インターフェイス、関数、または定数をインポートする場合は、複数の use ステートメントを使用する必要があります。

非推奨:

<code><?php
use Symfony\Component\HttpFoundation\Request,
    Symfony\Component\HttpFoundation\Response,
    Symfony\Component\HttpFoundation\Cookie;</code>

推奨:

<code><?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Cookie;</code>

PHP では 1 つのファイルで複数の名前空間を定義できます [強く推奨されません]

<code><?php
namespace Foo {
    //...
}

namespace Bar {
    //...
}</code>

グローバル名前空間

<code><?php
namespace My\App;

class Foo
{
    public function doSomething()
    {
        $ex = new \Exception();
    }
}</code>

注: 現時点では、例外でclass 名前の前に接頭辞を追加すると、PHP は例外をグローバルに検索します。デフォルトでは、現在の名前空間で検索します。

上記では、Modern-php の本の抜粋 (1) 名前空間を、エスケープとモダンな側面を含めて紹介しました。これが、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。