ホームページ >バックエンド開発 >PHPチュートリアル >PHP マジック定数の概要とマジック関数の使用コード手順の概要
魔法定数
1. LINE
ファイル内の現在の行番号を返します。
2. FILE
ファイルの完全なパスとファイル名を返します。 インクルード ファイルで使用された場合は、インクルード ファイル名を返します。 PHP 4.0.2 以降、FILE には常に絶対パスが含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。
3. FUNCTION
関数名を返します (PHP 4.3.0 で新しく追加されました)。 PHP 5 以降、この定数は定義されたとおりの関数名を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。
4. CLASS
クラスの名前を返します (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたときのクラスの名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。
5. METHOD
クラスのメソッド名を返します (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が区別されます)。
マジック関数とは何ですか?
冒頭の関数は、set() get() など、特定の条件下でトリガーされる関数です。 get() set() isset() unset() call() call
( )
sleep() wakeup() to
String
() set_state() clone() autoload() construct() オブジェクトがインスタンス化されると、オブジェクトのこのメソッドが最初に呼び出されます。 destruct() このメソッドは、オブジェクトが削除されるか、オブジェクトの操作が終了するときに呼び出されます。
class test1 { public function construct() { var_dump(function); } public function destruct() { var_dump(function); } } $t1 = new test1 ; unset($t1);get は、存在しないプロパティを読み取ろうとしたときに呼び出されます。 set は、存在しないプロパティに値を書き込もうとするときに呼び出されます。
class test2 { public $name3; public function set($key, $value) { var_dump(function. ' KEY:' .$key.' Value:' .$value); } public function get($key) { var_dump(function. 'KEY:'.$key); } public function isset($key) { var_dump(function. ' KEY:'.$key); } public function unset($key) { var_dump(function. ' KEY:'.$key); } } $t =new test2 ; $t->name = "steven"; $t->name2; $t->name3; isset($t->name2); isset($t->name3); unset($t->name4);
sleep はオブジェクトをシリアル化するときに呼び出されます
wakeup はオブジェクトを逆シリアル化するときに呼び出されます
1 つの注意点:
1. sleep() は配列またはオブジェクトを返す必要があり (通常は $this が返されます)、戻り値は次のようになりますシリアル化された
この値が返されない場合、シリアル化は失敗します。これは、逆シリアル化によってウェイクアップ イベントがトリガーされないことも意味します。
2. シリアル化では、デフォルトで割り当てられた属性が保存されます。インスタンス化によってコンテンツを割り当てたい場合は、sleep() によって返される配列で属性を指定する必要があります。たとえば、$id と $id2 の違いです。
class test3 { public $name = "steven"; public $id = "1"; public $id2; public function sleep() { var_dump(function); // 序列化不成功.没有返回值.反序列也失败 // return array("name"); // 序列化成功.有返回值.反序列成功.id2属性能被恢复 // return array("name", "id2");// 序列化成功.有返回值.反序列成功.id2属性不能被恢复 return array("name"); } public function testEcho() { var_dump($this->name); var_dump($this->id); var_dump($this->id2); } public function wakeup() { var_dump(function); $this->testEcho(); } } $t3= new test3 ; $t3->id2 = uniqid(); $t3s = serialize($t3); unserialize($t3s);
class test4 { public function toString() { return "toString"; } } $t4 = new test4(); echo $t4; print $t4; var_dump($t4); print_r($t4);
class test5 { public function call($func, $param) { var_dump('Function:'.$func); var_dump($param); } } $t5 = new test5; $t5->echoTest('xx','xx','xx');callStatic() の場合、call() は呼び出されないことに注意してください。存在しない
static
メソッド
を呼び出すときに呼び出されます。このメソッドには 2 つのパラメータが必要です。1 つ目は呼び出されるメソッドの名前で、2 つ目は呼び出されるメソッドのパラメータ配列です。
PHP5.3 で登場
class test51 { public function callStatic($fun, $param) { var_dump('Function:'.$func); var_dump($param); } } test51::test('xx','xx','xx');set_state() は、var_export を使用してインスタンスがエクスポートされるときに呼び出されます。このメソッドには、エクスポートされたインスタンスのすべてのメンバー属性を含む配列であるパラメーターがあります。
class test6 { public function set_state($arr){ var_dump($arr); } } $t6 = new test6; $t6->age = "12"; var_export($t6, true); var_export($t6); eval(' $b=' .var_export($t6,true).';'); print_r($b);
が呼び出されます。りー
以上がPHP マジック定数の概要とマジック関数の使用コード手順の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。