<?php /** * Created by PhpStorm. * User: Itboot * Date: 2019/2/13 * Time: 14:36 */ /** * ----把戏要领类 * ---php中,顺序在特定时刻自动挪用的要领,叫做把戏要领 * Class Magic */ class Magic { public $name; //大众的 protected $age; //受庇护的 private $height; //私有的 /** *--组织要领 * -----在表里实例化对象的时刻自动挪用此要领,平常用来初始化某些变量 * Magic constructor. * @param $name * @param $age * @param $height */ public function __construct($name, $age, $height) { $this->name = $name; $this->age = $age; $this->height = $height; } /** * ---在类外挪用受庇护的以及私有的成员属性时自动实行该要领 * ---或许在挪用不存在的属性是自动实行该要领 * @param $name //挪用的属性 */ public function __get($name) { echo $name . "该属性你没有权限举行挪用或许该属性不存在于" . __CLASS__ . '中--__get()' . PHP_EOL; } /** * ---在类外挪用受庇护的以及私有的成员属性设置值的时刻自动实行此要领 *----或许类中不存在的属性设置值的时刻 * @param $name //类外挪用属性的属性称号 * @param $value //对属性须要设置的值 */ public function __set($name, $value) { echo $name . "该属性你没有权限举行挪用或许该属性不存在于" . __CLASS__ . '中, 不能设为' . $value . '--__set()' . PHP_EOL; } /** * ---在类外挪用一个不存在的一般要领时,挪用此要领 * @param $name //类外挪用的要领称号 * @param array $arguments //挪用此要领时通报的参数 */ public function __call($name, array $arguments) { echo $name . "这个一般要领不存在,你挪用这个不存在要领通报的值为" . PHP_EOL; var_dump($arguments); } /** *---在类外挪用一个不存在的静态要领时,挪用此要领 ,此要领也必需为静态要领 * @param $name //类外挪用的要领称号 * @param $arguments //挪用此要领时通报的参数 */ public static function __callStatic($name, array $arguments) { echo $name . "这个静态要领不存在,你挪用这个不存在要领通报的值为" . PHP_EOL; var_dump($arguments); } /** * -----在类外烧毁受庇护的以及私有的成员属性时挪用此把戏要领 * @param $name // 类外烧毁属性的属性称号 */ public function __unset($name) { echo $name . "权限很高,就是不让你烧毁啊" . PHP_EOL; } /** * ----在类外推断受庇护的以及私有的成员属性是不是设置时挪用此把戏要领 * @param $name // 类外推断的属性的属性称号 */ public function __isset($name) { echo $name . "权限很高,就是不让你推断啊" . PHP_EOL; } /** * ------将类实例化为对象以后,运用clone克隆这个类的时刻挪用此要领,能够在此设置克隆的类的成员属性 */ public function __clone() { $this->name = '小羽'; $this->age = '18'; $this->height = '165'; } /** * 在类外实例化这个对象以后,序列化这个对象以后挪用此要领 * 作用为只序列化这个要领中返回的成员属性 */ public function __sleep() { return ['age', 'height']; } /** * -----将类实例化为对象的时刻,echo或许print 对象挪用此要领。!!!注重,此要领内只能return不能echo 或许 print * @return string */ public function __toString() { return "你是不是是闲得慌,没事你去输出对象,有病啊" . PHP_EOL; } /** * ---在类外实例化这个对象以后,反序列化的时刻挪用此要领 能够在反序列化的时刻从新初始化成员属性 */ public function __wakeup() { $this->name = '小羽'; $this->age = '18'; $this->height = '165'; } /** * ----将类实例化为对象的时刻,打印对象时挪用此要领, var_dump() 打印此要领返回的数组 5.6以后才有这个把戏要领 * @return array */ public function __debugInfo() { return ['age' => 333, 'height' => 3333]; } /** * -----__invoke 当把对象当要领挪用的时刻 起首实行这个把戏要领 */ public function __invoke($a) { echo '__invoke in php...把对象当要领挪用了' . $a .PHP_EOL; } /** * --实行完剧本以后会自动挪用此要领 析构函数 */ public function __destruct() { echo 'game over'. PHP_EOL; } } /** * 这是唯一的一个写在类外的把戏要领 * 在实例化一个不存在的类的时刻就会挪用此要领 * 能够用在须要某些类然则没有引入的状况 */ function __autoload($className) { $file = $className .'.php'; include_once($file); } $magic = new Magic('mwh', 22, 170); $magic('__invoke'); echo $magic; var_dump($magic); $new = clone $magic; print $new->name;
以上就是PHP中把戏要领的总结(代码)的细致内容,更多请关注ki4网别的相干文章!