この記事では、PHP に関する関連知識を提供し、主にマジック メソッドに関する関連事項を紹介し、__construct 構築メソッド、__destruct デストラクター メソッド、および __clone クローン作成メソッドについてまとめています。 。
推奨学習: 「PHP ビデオ チュートリアル 」
php のマジック メソッドの詳細な説明、in php 非常に奇妙なメソッドのようなものがあります。つまり、特定の条件が満たされる限り、それが自動的に実行されます。これは、php の魔法のメソッドです。
<?php class autofelix { public function __construct() { echo '我是类autofelix'; } } new autofelix(); //即可输出:我是类autofelix
<?php class autofelix { public function __destruct() { echo '我准备销毁你了'; } } $a = new autofelix(); unset($a); //即可输出:我准备销毁你了
<?php class autofelix { public function __clone() { echo '我克隆了你'; } } $a = new autofelix(); clone $a; //即可输出:我克隆了你
<?php class autofelix { private function say() { echo 'hello, 我是autofelix'; } public function __call($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a->say(); //按理说应该报错 //即可输出:你无权调用say方法
<?php class autofelix { private static function say() { echo 'hello, 我是autofelix'; } public function __callStatic($name, $arguments) { echo '你无权调用' . $name . '方法'; die; } } $a = new autofelix(); $a::say(); //按理说应该报错 //即可输出:你无权调用say方法
<?php class autofelix { public function __debugInfo() { echo '你看不到我任何信息的~'; } } var_dump(new autofelix()); //即可输出:你看不到我任何信息的~
<?php class autofelix { private $name = 'autofelix'; public function __get($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } $a = new autofelix(); $a->name; //即可输出:autofelix
<?php class autofelix { private $name = 'autofelix'; public function __isset($name) { if(in_array($name, ['name', 'age'])) { echo $this->name; } else { echo '不是什么东西都能访问的~'; } } } $a = new autofelix(); isset($a->name); //结果: autofelix
<?php class autofelix { public function __set($name, $value) { echo '你想给' . $name . '赋值' . $value; } } $a = new autofelix(); $a->name = 'autofelix'; //结果: 你想给name赋值autofelix;
<?php class autofelix { public function __invoke() { echo '你还想调用我?'; } } $a = new autofelix(); //对象直接当函数调用 $a(); //结果: 你还想调用我?
<?php class autofelix { public function __sleep() { echo '弄啥嘞~'; } } $a = new autofelix(); serialize($a); //结果: 弄啥嘞~
<?php class autofelix { public function __toString() { return '我是你得不到的对象...'; } } $a = new autofelix(); echo $a; //结果: 我是你得不到的对象...
<?php class autofelix { private $name = 'autofelix'; public function __unset($name) { echo '想删我? 你也配?'; } } $a = new autofelix(); unset($a->name); //结果: 想删我? 你也配?
以上がphpでのマジックメソッドをまとめて整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。