PHP名前空間と自動読み込みに関する事前学習、PHP名前空間に関する事前学習
参考資料:
PHP マニュアル - 言語リファレンス: http://php.net/manual/zh/ language.namespaces.php
まとめ:
1. 名前空間を宣言すると、以下のconst、関数、クラスが名前空間に分類されます。
2. 宣言された名前空間を持つ PHP ファイルのみが、名前空間を持つ PHP ファイルをロードできます。
3. PHP 5.3 以降では名前空間を使用できます
名詞:
キーワード: 名前空間は、この PHP ファイルの名前空間を宣言するために使用されます
定数: __NAMESPACE__ は、現在の名前空間の名前を返すために使用されます。デフォルトは空の文字列
です。
演算子: エイリアスとして最後の文字列の後の文字列をデフォルトとして使用します。as と一緒に使用すると、MySQL のフィールド エイリアスと一致する as の後の文字列になります。
実際の操作は以下の通りです:
apache ディレクトリに次のファイルを作成します:index.php、Order.php、User.php
![](http://www.bkjia.com/uploads/allimg/151012/1U3345b7-0.png)
Order.phpの内容は、
リーリー
index.php の内容は次のとおりです:
リーリー
印刷結果は次のとおりです:
![](http://www.bkjia.com/uploads/allimg/151012/1U3343021-1.png)
上記の内容には、名前空間を介したファイルへのアクセス、直接インスタンス化アクセス、およびこの空間での直接アクセスが含まれます。
ネームスペースの存在は、同じ名前を持つ 2 つのクラスがロードされるのを防ぐためです。ネームスペースを使用すると、サードパーティのクラスをロードするときに同じ名前の競合を回避できます。
自動読み込みについて話しましょう
SPL の正式名は、Standard PHP Library です。PHP 標準ライブラリは、PHP5 以降、PHP に組み込まれており、追加のインストールは必要ありません。
SPL には、データ構造、イテレータ、例外、ファイル処理などの関数ライブラリのセットが含まれています。
自動読み込みライブラリには以下の機能があります
spl_autoload_call: 登録されているすべての __autoload() 関数を呼び出してリクエスト クラスをロードしてみます。
User.php の内容は次のとおりです:
リーリー
印刷結果は次のとおりです:
![](http://www.bkjia.com/uploads/allimg/151012/1U3342912-2.png)
SPL自動ロード機能には以下が含まれます:
spl_autoload_extensions: spl_autoload 関数で使用されるデフォルトのファイル拡張子を登録して返します。
get_include_path: デフォルトの参照フォルダーを設定します
spl_autoload_register: ファイルを自動的にインポートします
実際の動作は以下の通りです。
次のようにディレクトリ構造と lib へのコピー順序を再調整します。
![](http://www.bkjia.com/uploads/allimg/151012/1U334E47-3.png)
User.phpを次のように変更します:
リーリー
印刷結果は次のとおりです:
![](http://www.bkjia.com/uploads/allimg/151012/1U3342016-4.png)
注:
SPL を使用してファイルをロードする場合、spl_autoload_register 関数をトリガーすることはできません。new によってトリガーされ、ファイルが見つからないというメッセージが表示されます。
すべては spl_autoload_call を使用して、事前に自動読み込みをトリガーします。
この記事のURL: http://www.cnblogs.com/martin-tan/p/4864539.html
質問:
get_include_path、spl_autoload_extensions、spl_autoload_register がデフォルトで空の場合、上記の理由によりディレクトリ内のファイルを直接ロードできません。 (?)
http://www.bkjia.com/PHPjc/1059465.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1059465.html技術記事 PHP 名前空間と自動読み込みに関する予備調査、PHP 名前空間に関する予備調査 参考: PHP マニュアル - 言語リファレンス: http://php.net/manual/zh/ language.namespaces.php 概要: 1. 宣言された名前空間...