iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中十六个魔术方法分别是什么
  • 637
分享到

PHP中十六个魔术方法分别是什么

2023-06-08 01:06:57 637人浏览 独家记忆
摘要

这篇文章主要介绍PHP中十六个魔术方法分别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!No.1 __construct()定义:类的构造函数解释:对象创建后第一个被自动调用的方法,通常被用来执行一些有用的初始

这篇文章主要介绍PHP中十六个魔术方法分别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

No.1 __construct()

定义:类的构造函数解释:对象创建后第一个被自动调用的方法,通常被用来执行一些有用的初始化任务,例如在创建对象时对成员属性赋予初始值。例子:Class Person{    public $name;    public $age;    public $sex;    public function __construct($name = '', $sex = '男', $age = 28) {        $this->name = $name;        $this->sex = $sex;        $this->age = $age;    }}注意:如果子类中定义了构造函数则不会调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()
NO.2 __destruct() [不常见]
定义:类的析构函数解释:与构造函数相反,在类销毁之前执行一些操作,比如关闭文件、释放结果等。例子:主动调用 unset( $obj )主动调用 $obj = NULL程序自动结束
NO.3 __call()
定义:在对象中调用一个不存在的方法时 自动调用解释:为了避免当调用的方法不存在时产生错误,而意外的导致程序中止,可以使用 __call() 方法来避免。
NO.4 __callStatic()
定义:同上 不同在于调用静态方法时 自动调用
NO.5 __get()
定义:可以在对象的外部获取私有成员属性的值例子:private $name;function __construct($name="", $age=1){    $this->name = $name;}public function __get($propertyName){       return $this->$propertyName;}// 通过Person类实例化的对象,并通过构造方法为属性赋初值$Person = new Person("小明", 60);// 直接访问私有属性name,自动调用了__get()方法可以间接获取echo "姓名:" . $Person->name . "<br>";
No.6 __set()
定义:与__get()类似 为私有属性赋值例子:public function __set($propertyName, $value){    $this->$propertyName = $value;}
No.7 __isset()
定义:在类外部 判断属性isset()例子:public function __isset($content) {    echo "当在类外部使用isset()函数测定私有成员{$content}时,自动调用<br>";    echo  isset($this->$content);}echo isset($person->name);
No.8 __unset()
定义:在类外部删除私有变量时自动调用
No.9 __sleep()
定义:执行serialize时会被自动调用例子:public function __sleep(){    $this->name = base64_encode($this->name);    return ['name', 'age'];}echo serialize($person);
No.10 __wakeup()
定义:与__sleep类似 在执行unserialize()时被自动调用
No.11 __toString()
定义:当类被当成字符串输出时如何响应 例如 echo $obj; 应该显示些什么。注意:此方法必须返回一个字符串,否则将发出一条 `E_RECOVERABLE_ERROR` 级别的致命错误。警告:不能在 __toString() 方法中抛出异常。这么做会导致致命错误。
NO.12 __invoke()
定义:当尝试以调用函数的方式调用一个对象生效例子:public function __invoke() {    echo '拿我当函数用,我就会被自动调用';}$person = new Perseon();$person();
No.13 __set_state()
定义:调用var_export导出类时,该方法自动被调用。
No.14 __clone()
定义:当对象复制完成时调用例子:public function __clone(){    echo __METHOD__."你正在克隆对象<br>";    $this->name = 'new name';    $this->age = 18;}$copy_of_object = clone $object;
No.15 __autoload()
定义:尝试加载未定义的类例子:function  __autoload($className) {      $filePath = “project/class/{$className}.php”;      // 判断文件是否可读    if (is_readable($filePath)) {          require($filePath);      }  }  if (条件A) {      $a = new A();      $b = new B();      $c = new C();      // … 业务逻辑  } else if (条件B) {      $a = newA();      $b = new B();      // … 业务逻辑  }注意:这里可以只用require,因为一旦包含进来后,php引擎再遇到类A时,将不会调用__autoload,而是直接使用内存中的类A,不会导致多次包含。扩展:<?phpclass autoloader {  public static $loader;  public static function init() {    if (self::$loader == NULL)      self::$loader = new self ();    return self::$loader;  }  public function __construct() {    spl_autoload_reGISter ( array ($this, 'model' ) );    spl_autoload_register ( array ($this, 'library' ) );  }  public function model($class) {    $class = preg_replace ( '/_model$/ui', '', $class );    set_include_path ( get_include_path () . PATH_SEPARATOR . '/model/' );    spl_autoload_extensions ( '.model.php' );    spl_autoload ( $class );  }  public function library($class) {    set_include_path ( get_include_path () . PATH_SEPARATOR . '/lib/' );    spl_autoload_extensions ( '.library.php' );    spl_autoload ( $class );  }}//callautoloader::init ();?>
No.16 __debugInfo()
定义:打印所需调试信息例子:public function __debugInfo(){    return [        'message' => "姓名:".$this->name . " 年龄:".$this->age    ];}$person = new Person('tongfei', 28);var_dump($person);

以上是“PHP中十六个魔术方法分别是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: PHP中十六个魔术方法分别是什么

本文链接: https://www.lsjlt.com/news/250804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP中十六个魔术方法分别是什么
    这篇文章主要介绍PHP中十六个魔术方法分别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!No.1 __construct()定义:类的构造函数解释:对象创建后第一个被自动调用的方法,通常被用来执行一些有用的初始...
    99+
    2023-06-08
  • php中魔术方法是什么
    这篇文章主要介绍了php中魔术方法是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类中的魔术方法PHP 魔术方法指的是在某些时刻会自动被...
    99+
    2024-04-02
  • php中的魔术方法是什么意思
    这篇文章主要介绍“php中的魔术方法是什么意思”,在日常操作中,相信很多人在php中的魔术方法是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中的魔术方法是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • php中魔术方法call指的是什么意思
    这篇文章主要介绍php中魔术方法call指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php __call是php魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方...
    99+
    2023-06-15
  • python魔术方法是什么
    这篇文章主要介绍“python魔术方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python魔术方法是什么”文章能帮助大家解决问题。一、三个内置函数@classmethod&nda...
    99+
    2023-06-26
  • php魔术方法有什么用
    这篇文章将为大家详细讲解有关php魔术方法有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php魔术方法的作用:1、【__construct()】实例化对象时自动调用;2、【__destruct()...
    99+
    2023-06-06
  • PHP中什么是魔术常量
    本篇文章给大家分享的是有关PHP中什么是魔术常量,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。魔术常量是不分大小写的,__LINE__和__line__是一样的,但对于工程化的...
    99+
    2023-06-20
  • php中魔术方法的示例分析
    这篇文章给大家分享的是有关php中魔术方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php魔术方法:1、【_sleep()】控制对象序列化时真正处理的部分;2、【_wakeup()】在反序列化后还原...
    99+
    2023-06-14
  • Python中魔术方法的特点是什么
    这期内容当中小编将会给大家带来有关Python中魔术方法的特点是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、l...
    99+
    2023-06-14
  • PHP中的魔术常量是什么?
    随着互联网技术的不断发展,网站和应用的需求量越来越大,其中PHP作为一种 Web 开发的重要工具,逐渐被人们所熟知。在 PHP 中,我们经常会听到一些关于 “魔术常量” 的说法,那么什么是 PHP 中的魔术常量呢?魔术常量是一种预定义的常量...
    99+
    2023-05-20
    编程 PHP 魔术常量
  • CSS中的六个重要选择器分别是什么
    这篇文章主要为大家展示了CSS中的六个重要选择器分别是什么,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“CSS中的六个重要选择器分别是什么”这篇文章吧。CSS 的选择器有哪些???1.通配符(*)...
    99+
    2023-06-08
  • Javascript基础中的十个重要问题分别是什么
    Javascript基础中的十个重要问题分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.什么是Javascript?Javascript是一种用于W...
    99+
    2023-06-22
  • 六个常用的MySQL管理工具分别是什么
    这期内容当中小编将会给大家带来有关六个常用的MySQL管理工具分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MySQL数据库以体积...
    99+
    2024-04-02
  • 十个修复IE6下bug技巧分别是什么
    这期内容当中小编将会给大家带来有关十个修复IE6下bug技巧分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。10个修复IE6下bug技巧IE6的末日即将来临,对我...
    99+
    2024-04-02
  • web开发中网站优化的六个细节分别是什么
    这篇文章给大家介绍web开发中网站优化的六个细节分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。做SEO大家都明白一个道理,就是简单的事情重复去做。这就是所谓的SEO最简单的方...
    99+
    2024-04-02
  • php中的魔术方法有哪些及怎么用
    这篇文章主要讲解了“php中的魔术方法有哪些及怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中的魔术方法有哪些及怎么用”吧!php中魔术方法详解,在php中有一类方法,很奇怪常,...
    99+
    2023-06-30
  • 十个不为人知的CSS技巧分别是什么
    本篇文章为大家展示了十个不为人知的CSS技巧分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。向大家描述一下10个你未必知道的CSS技巧,比如CSS用于文档打...
    99+
    2024-04-02
  • Linux命令行中六大技巧分别是什么
    本篇文章为大家展示了Linux命令行中六大技巧分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。合理的使用Linux命令行小技巧可以大大提高我们的工作效率而且还会获得非常多的乐趣,下面为大家分...
    99+
    2023-06-28
  • 提高Python运行效率的六个窍门分别是什么
    这篇文章将为大家详细讲解有关提高Python运行效率的六个窍门分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python是一门优秀的语言,它能让你在短时间内通过极少量代码就能完成许...
    99+
    2023-06-17
  • 成功部署SD-WAN的六个必要条件分别是什么
    成功部署SD-WAN的六个必要条件分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  SD-WAN是近年来最热门的企业技术趋势之一,与MPLS相比,它具有易于管理,...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作