PHP基础知识 - PHP魔术方法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

PHP 13 个常用魔术方法:

__construct、__destruct、__call 或 __callStatic、__get、__set、__isset、__unset、__toString、__clone、__autoload、__invoke、__sleep、__wakeup

1、__construct 构造方法 

__construct 构造方法当一个类被实例化创建对象时会调用构造方法。 

2、__construct 构造方法  

__destruct 析构方法 当对象在销毁之前或失去对对象的引用时会调用 析构方法。 

3、__call 或 __callStatic

  • 当调用一个未定义的或没有权限的成员方法时会调用 __call 方法。当在静态方法中调用一个未定义的或没有权限的成员方法时则会调用 __callStatic 方法。
  • 如果本类找不到调用的成员方法会去父类中找。
  • 如果本类找不到 __call 方法会去父类中找。

4、__get 

当调用一个未定义的或非公有的成员属性时会调用 __get 方法。 

5、__set 

当给一个未定义的或非公有的成员属性赋值时 会调用 __set 方法。 

6、__isset

当在一个未定义的或非公有的成员属性上调用 isset函数时会调用 __isset 方法。 

7、__unset

当在一个未定义或非公有的成员属性上调用 unset函数时会调用 __unset 方法。 

8、 __toString

在打印输出一个对象时, 会自动调用 __toString 方法。 例: echo 对象名。 

9、__clone

当克隆一个对象时, 会自动调用 __clone 方法。 例: $clone_obj = clone 对象名; 

10、__autoload

在实例化一个尚未被定义的类时会自动调用 __autoload 来加载类文件。 

11、__invoke

当尝试以调用函数的方式调用一个对象时, 会自动调用 __invoke 方法。 

12、__sleep

serialize() 函数会检查类中是否存在 __sleep 方法如果存在先执行 __sleep 方法再执行 序列化操作。

<?php
    class User
	{
    	public function __sleep(){
            // 
        }
	}
    $obj = new User();
	serialize($obj);

13、__wakeup

unserialize() 函数会检查类中是否存在 __wakeup 方法如果存在先执行 __wakeup 方法再执行 反序列化操作。

<?php
    class User
	{
    	public function __wakeup(){
            // 
        }
	}
    $obj = new User();
	unserialize($obj);
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: php