PHP中的哪些魔术方法可以自动调用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1153个文字,预计阅读时间需要5分钟。
在PHP中,存在一种堆魔术方法,服务于类和对象。尽管PHP本质上是面向对象的,但早期版本并未充分体现面向对象特性。PHP中存在堆魔术方法,服务于类和对象。PHP自然也是纯面向对象的。
在PHP中有一堆魔术方法服务于类和对象。PHP虽然也是纯种的面向对象语言但是之前的PHP还真不是所以有一些面向对象的在PHP中有一堆魔术方法服务于类和对象。PHP虽然也是纯种的面向对象语言但是之前的PHP还真不是所以有一些面向对象的标准实现并不完善比如重载。但是我们可以通过一些魔术方法来弥补例如__call()方法就可以用来实现重载。
话不多说我们一个一个的来看。
__construct()和__destruct()
这两个是非常出名并且也是非常常用的魔术方法。__construct()是构造函数。在Java中构造函数是与类名相同的方法名而PHP在早期的版本中也是这样的但从5以后改成了__construct()方法来实现原因是当类名进行修改的时候可以不用再去修改这个方法名了。当然我们用与类名相同的方法名也是可以向下兼容的不过最好不要这样用。
__destruct()方法是析构函数不需要显式的调用系统会自动调用这个方法。而且析构函数不需要参数因为它不需要去调用嘛系统自动调用的时候也是不会去带参数的。
public function __construct(){echo 构造函数 . PHP_EOL;}public function __destruct(){echo 析构函数 . PHP_EOL;}
__call()与__callStatic()
非常重要而且也是面试时经常会问到的魔术方法。它们俩的作用其实差不多都是用于未定义的方法当使用这些未定义的方法时就会进入这两个函数中。
本文共计1153个文字,预计阅读时间需要5分钟。
在PHP中,存在一种堆魔术方法,服务于类和对象。尽管PHP本质上是面向对象的,但早期版本并未充分体现面向对象特性。PHP中存在堆魔术方法,服务于类和对象。PHP自然也是纯面向对象的。
在PHP中有一堆魔术方法服务于类和对象。PHP虽然也是纯种的面向对象语言但是之前的PHP还真不是所以有一些面向对象的在PHP中有一堆魔术方法服务于类和对象。PHP虽然也是纯种的面向对象语言但是之前的PHP还真不是所以有一些面向对象的标准实现并不完善比如重载。但是我们可以通过一些魔术方法来弥补例如__call()方法就可以用来实现重载。
话不多说我们一个一个的来看。
__construct()和__destruct()
这两个是非常出名并且也是非常常用的魔术方法。__construct()是构造函数。在Java中构造函数是与类名相同的方法名而PHP在早期的版本中也是这样的但从5以后改成了__construct()方法来实现原因是当类名进行修改的时候可以不用再去修改这个方法名了。当然我们用与类名相同的方法名也是可以向下兼容的不过最好不要这样用。
__destruct()方法是析构函数不需要显式的调用系统会自动调用这个方法。而且析构函数不需要参数因为它不需要去调用嘛系统自动调用的时候也是不会去带参数的。
public function __construct(){echo 构造函数 . PHP_EOL;}public function __destruct(){echo 析构函数 . PHP_EOL;}
__call()与__callStatic()
非常重要而且也是面试时经常会问到的魔术方法。它们俩的作用其实差不多都是用于未定义的方法当使用这些未定义的方法时就会进入这两个函数中。

