php のマジックには 2 つの意味があります: 1. マジック メソッドを指します。PHP は 2 つのアンダースコアで始まるすべてのクラス メソッドをマジック メソッドとして予約します; 2. PHP が操作するマジック定数を指します。事前定義された定数がすべてのスクリプトに提供されます。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
魔法の方法
PHP は、__ (アンダースコア 2 つ) で始まるすべてのクラス メソッドをマジック メソッドとして予約します。したがって、上記のマジック メソッドを除き、クラス メソッドを定義する場合は、先頭に __ を付けないことをお勧めします。
__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__serialize()、 __unserialize()、__toString()、__invoke()、__set_state()、__clone()、__debugInfo() などのメソッドは、PHP ではマジック メソッドと呼ばれます。マジック機能を使用しない限り、独自のクラス メソッドに名前を付けるときにこれらのメソッド名を使用することはできません。
注: すべてのマジック メソッドは public として宣言する必要があります。
マジック定数
PHP は、実行するスクリプトに多数の事前定義された定数を提供します。ただし、多くの定数はさまざまな拡張ライブラリによって定義されており、これらの拡張ライブラリが動的にロードされるか、コンパイル時に組み込まれるかによってロードされるときにのみ表示されます。
コード内の位置に応じて値が変化するマジック定数が 8 つあります。たとえば、__LINE__ の値は、スクリプト内の行によって異なります。これらの特別な定数は、次のように大文字と小文字が区別されません。
いくつかの PHP "マジック定数"
__LINE__: ファイル内の現在の行番号。
__FILE__: ファイルの完全なパスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。
#__DIR__: ファイルが配置されているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。これは dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 __FUNCTION__: 現在の関数の名前。匿名関数は {closure} です。 __CLASS__: 現在のクラスの名前。クラス名には、それが宣言されているスコープが含まれます (例: Foo\Bar)。 PHP 5.4 以降、__CLASS__ はトレイトに対しても機能することに注意してください。特性メソッド内で使用される場合、__CLASS__ は特性メソッドを呼び出すクラスの名前になります。 __TRAIT__: 特性の名前。トレイト名には、それが宣言されているスコープが含まれます (例: Foo\Bar)。 __METHOD__: クラスのメソッド名。 __NAMESPACE__: 現在のネームスペースの名前。 ClassName::class: 完全なクラス名。「::class」を参照。 get_class() get_object_vars()、file_exists()、および function_exists() を参照してください。 [推奨学習: 「PHP ビデオ チュートリアル 」]
以上がphpマジックとはどういう意味ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。