ホームページ  >  記事  >  バックエンド開発  >  PHP マジック メソッドとマジック変数、組み込みメソッドと組み込み変数の詳細な分析_PHP チュートリアル

PHP マジック メソッドとマジック変数、組み込みメソッドと組み込み変数の詳細な分析_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:09:13791ブラウズ

PHP には組み込み変数があります: DIRECTORY_SEPARATOR
DIRECTORY_SEPARATOR は、オペレーティング システムに関連するパス区切り文字を返す PHP 組み込みコマンドです。Windows では / を返し、Linux または Unix のような場合は / を返します。違いは、通常、インクルード ファイルのパスを定義するとき、または保存ディレクトリをアップロードするときに使用されます。
PHP は、__ (2 つのアンダースコア) で始まるすべてのクラスメソッドをマジックメソッドとして扱います。したがって、独自のクラス メソッドを定義する場合は、先頭に __ を付けないでください。

1, __construct()
オブジェクトをインスタンス化するとき、オブジェクトのコンストラクター メソッドが最初に呼び出されます。
同じクラス名の php5 オブジェクト モデルと関数がクラスのコンストラクターであることがわかっています。同時に定義されている場合 コンストラクターと __construc() メソッドの場合、php5 は同じ名前の関数を呼び出すのではなく、デフォルトで __contruct() を呼び出すため、 __contruct() がクラスのデフォルトのコンストラクターとして機能します

2。 , __destruct()
destruction 関数は、オブジェクトへの参照がすべて削除されるか、オブジェクトが明示的に破棄されるときに実行されます。

3, __get(string $name)
は、存在しないプロパティを読み取ろうとするときに呼び出されます。オブジェクトに存在しないプロパティを読み取ろうとすると、php はエラー メッセージを表示します。クラスに __get メソッドを追加すると、この関数を使用して Java のリフレクションと同様のさまざまな操作を実装できます。

4, __set(string $name,mixed $value)
は、未定義の変数に値を割り当てるときに呼び出されます

5, __call(string $name, array $arguments)
アクセスできないメソッドを呼び出すときに(未定義または表示されない場合)、__call() が呼び出されます。
__callStatic( string $name, array $arguments )
アクセスできないメソッド (未定義または非表示など) が静的メソッド内で呼び出される場合、__callStatic() が呼び出されます。

6、__toString()
は、オブジェクトを印刷するときに呼び出されます。このメソッドは、オブジェクトを直接印刷するときに呼び出される Java の toString メソッドに似ています。

7, __clone()
オブジェクトが複製されるときに呼び出されます。

8、__sleep()
serialize() 関数は、マジックメソッド __sleep があるかどうかを確認し、存在する場合は、__sleep() メソッドが最初に呼び出され、その後シリアル化操作が実行されます。この関数を使用すると、オブジェクトをクリーンアップし、オブジェクト内のすべての変数の名前を含む配列を返すことができます。メソッドが何も返さない場合、NULL がシリアル化され、E_NOTICE エラーが発生します。 __sleep メソッドは、コミットされていないデータや同様の操作を送信するためによく使用されます。同時に、この機能は、保存する必要のない大きなオブジェクトがある場合に非常に便利です。

9 、 __wakeup()
__sleep() とは反対に、 unserialize() は __wakeup メソッドがあるかどうかを確認します。存在する場合、__wakeup メソッドが最初に呼び出され、オブジェクト データを事前に準備します。 __wakeup は、データベース接続の再確立やその他の初期化操作の実行など、逆シリアル化操作でよく使用されます。

10、__isset()
未定義の変数に対して isset() または empty() が呼び出された場合、 __isset() が呼び出されます。

11、__unset()
は、オブジェクトのプロパティの設定を解除するときに呼び出されます。例: unset($c->name)。

12、var_exportが呼び出されたときに__set_state()
が呼び出されます。 __set_state の戻り値を var_export の戻り値として使用します。

13, __autoload()
オブジェクトをインスタンス化する際、対応するクラスが存在しない場合、このメソッドが呼び出されます。簡単に言えば、これはクラスの自動ロードです。PHP が編成していないクラスを使用しようとすると、グローバル関数 __autoload が存在する場合、PHP はその名前のパラメーターを使用してそれを呼び出します。クラス。 。

14、__invoke()
関数を呼び出してオブジェクトを呼び出そうとすると、__invokeメソッドが自動的に呼び出されます。

マジック定数:
__LINE__ ファイル内の現在の行番号。
__FILE__ ファイルの絶対パスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。 PHP 4.0.2 以降、__FILE__ には常に絶対パス (またはシンボリック リンクの場合は解決された絶対パス) が含まれますが、以前のバージョンには相対パスが含まれる場合がありました。
__DIR__ ファイルが配置されているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。これは dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機能) =
__FUNCTION__ 関数名 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は関数が定義されたときの関数の名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。
__CLASS__ クラスの名前 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたときのクラスの名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。
__METHOD__ クラスのメソッド名 (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が区別されます)。
__NAMESPACE__ 現在のネームスペースの名前 (大文字と小文字が区別されます)。この定数はコンパイル時に定義されます (PHP 5.3.0 の新機能)

www.bkjia.com本当http://www.bkjia.com/PHPjc/327384.html技術記事 PHP 組み込み変数: DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR は、オペレーティング システムに関連するパス区切り文字を返す PHP 組み込みコマンドです。Windows では / を返し、Linux では / を返します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。