您的位置:

php的魔术方法小结,php类的魔术方法

本文目录一览:

php的魔术方法

PHP的魔术方法:

1、__construct() :实例化对象时自动调用。

2、__destruct() :销毁对象或脚本执行结束时自动调用。

3、__call($name, $args) :调用对象不存在得方法时执行此函数。

4、__get() :获取对象不存在的属性时执行此函数。

5、__set() :设置对象不存在的属性时执行此函数。

6、__isset() : 检测对象的某个属性是否存在时执行此函数。

7、__unset() :销毁对象的某个属性时执行此函数。

8、__toString() :将对象当作字符串输出时执行此函数。

9、__clone() :克隆对象时执行此函数。

10、__autoload() :实例化对象时,当类不存在时,执行此函数自动加载类。

11、__sleep() :serialize之前被调用,可以指定要序列化的对象属性。

12、__wakeup :unserialize之前被调用,可以执行对象的初始化工作。

13、__set_state() :调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

php中常用的魔术方法有哪些?

php规定以两个下划线__开头的方法都保留为魔术方法,建议自定义函数的函数名最好避开。

__construct() 实例化类时自动调用。

__destruct() 类对象使用结束时自动调用。

__set() 在给未定义的属性赋值的时候调用。

__get() 调用未定义的属性时候调用。

__isset() 使用isset()或empty()函数时候会调用。

__unset() 使用unset()时候会调用。

__sleep() 使用serialize序列化时候调用。

__wakeup() 使用unserialize反序列化的时候调用。

__call() 调用一个不存在的方法的时候调用。

__callStatic()调用一个不存在的静态方法是调用。

__toString() 把对象转换成字符串的时候会调用。比如 echo。

__invoke() 当尝试把对象当方法调用时调用。

__set_state() 当使用var_export()函数时候调用。接受一个数组参数。

__clone() 当使用clone复制一个对象时候调用。

php魔术方法。。

在 PHP 里,将所有以 __(两个下划线)开头的类方法保留为魔术方法,所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

魔术方法的引入是对面向对象编程思想的进一步实现,重载就是通过魔术方法来实现的。

PHP 魔术方法主要有:

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(),__sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等。

最常见的是__construct(), __destruct(),__get(), __set()等:

__construct和__destruct是类的构造函数和析构函数。

php 中的魔术函数都有哪些?

魔术函数1。__construct()

实例化对象时被调用,

当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。2。__destruct()

当删除一个对象或对象操作终止时被调用。3。__call()

对象调用某个方法,

若方法存在,则直接调用;

若不存在,则会去调用__call函数。4。__get()

读取一个对象的属性时,

若属性存在,则直接返回属性值;

若不存在,则会调用__get函数。5。__set()

设置一个对象的属性时,

若属性存在,则直接赋值;

若不存在,则会调用__set函数。6。__toString()

打印一个对象的时被调用。如echo $obj;或print $obj;7。__clone()

克隆对象时被调用。如:$t=new Test();$t1=clone $t;8。__sleep()

serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。9。__wakeup()

unserialize时被调用,做些对象的初始化工作。10。__isset()

检测一个对象的属性是否存在时被调用。如:isset($c-name)。11。__unset()

unset一个对象的属性时被调用。如:unset($c-name)。12。__set_state()

调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。13。__autoload()

实例化一个对象时,如果对应的类不存在,则该方法被调用。魔术常量1。__LINE__

返回文件中的当前行号。2。__FILE__

返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。3。__FUNCTION__

返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。4。__CLASS__

返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。5。__METHOD__

返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

(1)初识魔术方法

Php5.0发布以来为我们提供了很多面向对象的特性,尤其是为我们提供了好多易用的魔术方法,这些魔术方法可以让我们简化我们的编码,更好的设计我们的系统。今天我们就来认识下php5.0给我们提供的魔术方法。