php5 中魔术方法函数有哪几个
魔术函数:
9.3 构造函数:__construct()
9.3.1 实例化对象时被调用。
9.3.2 在类中,构造函数是用来初始化对象的,利用构造函数,可以操作对象,并改变它的值。
9.3.3 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。
9.3.4 当子类重写了构造函数,子类被实例化时,只调用子类的构造函数,而父类的构造函数不被调用。
9.4 析构函数:__destruct()
9.4.1 当删除一个对象或对象操作终止时被调用。
9.4.2 当该对象的所有引用都被删除,或者对象被显式销毁时执行。
9.5 克隆函数:__clone()
9.5.1 当对象被拷贝(克隆)时直接调用。
9.5.2 如$a = new Action(); $a = $object;
9.6 __set($name, $value)
9.6.1 用$object->a = 17的方式给属性赋值时,如果属性a存在且是public型,那么直接给属性a赋值皆可;
9.6.2 如果属性a不存在或者是protected/private型,就会调用__set($name, $value)方法。
9.6.3 二个参数:属性、属性值。
9.7 __get($name)
9.7.1 用$object->a的方式读取对象的属性时,如果属性a存在且是public型,那么直接返回该属性的值;
9.7.2 如果属性a不存在或者是protected/private修饰的不可直接访问的类型,就会调该方法并以返回值为准。
9.7.3 一般可以使用该方法使外部可限制性地访问内部属性,或者完成类似java中的反射操作。
9.8 __isset($name)
9.8.1 检测一个对象的属性是否存在时被调用。
9.8.2 如:isset($c->name),如果name不存在,则触发该函数。
9.8.3 对不存在或者不可访问的属性使用isset()或者empty()时,__isset()会被调用。
9.9 __unset($name)
9.9.1 销毁一个对象的属性时被调用。
9.9.2 如:unset($c->name),如果name不存在,则触发该函数。
9.9.3 当unset一个不存在或者不可访问的属性时,__unset()会被调用,否则直接unset该属性皆可。
9.10 __call($name, $arguments)
9.10.1 当调用不存在或者不可访问的方法时,会调用__call($name, $arguments)方法。
9.11 __callStatic($name, $arguments)
9.11.1 当在静态方法中调用不存在或者不可访问的方法时,会调用__callStatic($name, $arguments)方法。
9.11.2 这个方法 是PHP5.3里才添加的,比较新。
9.12 __toString()
9.12.1 当打印对象时会被直接调用。如 echo $object; 或 print $obj;
9.12.2 注意:这时候php会抛出一个Catchable fatal error错误;用print_r打印对象不会触发此函数。
9.13 __set_state()
9.13.1 用var_export()输出一个对象时,__set_state()会被调用,输出内容以该魔术方法的返回值为准。
9.13.2 注:var_export()和var_dump()类似,只是var_export()输出的内容符合php语法。
9.14 __autoload($name)
9.14.1 实例化一个对象时,如果对应的类不存在,则该方法被调用。
9.14.2 这个函数比较特殊,这个函数并不是作为类的成员方法使用的。
9.14.3 注意:该方法是全局函数,参数是类的名称。
9.14.4 可以用spl_autoload_register函数来定义其他的函数来代替__autoload
9.15 __sleep()
9.15.1 serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
9.16 __wakeup()
9.16.1 unserialize时被调用,做些对象的初始化工作。
php5 中魔术方法函数有哪几个的更多相关文章
- PHP5中魔术方法
魔术函数 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() ...
- 一文解读C# 动态拦截第三方进程中的方法函数(外挂必备)
一.前言 由于项目需要,最近研究了一下跨进程通讯改写第三方程序中的方法(运行中),把自己程序中的目标方法直接覆盖第三方程序中的方法函数:一直没有头绪,通过搜索引擎找了一大堆解决方案,资料甚是稀少,最后 ...
- php中魔术方法有什么用
在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发. __construct ...
- C#中的方法(函数),委托和事件
1. 先有方法,然后再有委托,最后再有事件 2. 思考能不能将 A方法 作为参数,传递给 B方法呢? eg: 在传统的编程方式中,A方法 调用 B方法的方式如下: //洗菜 public void W ...
- python中的嵌套类(内部类调用外部类中的方法函数)
在为书中版本是3.X的,但2.X不太支持直接调用. 所以,在PYTHON2.X中,要在内部类中调用外部类的方法,就必须得实例化外部类,然后,传入实例进行调用. 花了我两个小时啊,资料没找到,自己一个一 ...
- PHP5.3魔术方法 __invoke
这个魔幻方法被调用的时机是: 当一个对象当做函数调用的时候, 如果对象定义了__invoke魔幻方法则这个函数会被调用, class Callme { public function __invoke ...
- [调试日志]用php函数var_export把多维数组file_put_contents写入并打印到日志,以方便调试之多维数组,用php5中的var_export函数示例,顺带介绍http_build_query(转)
一行解决写入日志: file_put_contents("/tmp/jack.txt", var_export($layReturnArr,TRUE),FILE_APPEND); ...
- php -- PHP5中file_get_contents函数获取带BOM的utf-8文件内容
最近,在用file_get_contents函数来取得文本的内容的时候,出现了一个情况(如下),苦思冥想了n久,不得其解,最后,果然还是得靠百度啊..... 百度到一个解释,下面是原文: PHP5中的 ...
- scala(一)方法&函数
写在前面 众所周知,scala一向宣称自己是面向函数的编程,(java表示不服,我是面向bean的编程!)那什么是函数? 在接触java的时候,有时候用函数来称呼某个method(实在找不出词了),有 ...
随机推荐
- xx-net安装配置
同学们,有没有因为不会FQ而痛苦?本小白就蛋疼了很久,今天终于把xx-netFQ工具给配置好了,拿出来和大家分享下. 首先,需要先下载xx-net,地址为:https://github.com/XX- ...
- 训练1-D
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果. Input 每行包含 ...
- sudo详细介绍
目录参数所在/etc/sudoers 1.Host_Alias定义主机别名 例:Host_Alias FILESERVERS = fs1,fs2 #注意“=”号两边要有空格隔开 ***由于现今li ...
- 关于NumPy的坑
初次接触NumPy的时候,感叹这个功能的强大,实现了Python对矩阵的运算,但在写一个项目的时候,发现了一个巨坑无比的情况 分隔符================= 对于被 ...
- keepalived安装实现nginx主备高可用
. keepalived安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt ...
- java8新特性:利用Lambda处理List集合
Java 8新增的Lambda表达式,我们可以用简洁高效的代码来处理List. 1.遍历 public static void main(String[] args) { List<User&g ...
- Error: CompareBaseObjectsInternal can only be called from the main thread
Posted: 01:39 PM 06-17-2013 hi, we're working on a project where we need to do some calculations on ...
- 王立平--Object-c
object-c通常写作objective-c或者obj-c,是依据C语言所衍生出来的语言.继承了C语言的特性,是扩充C的面向对象编程语言. 它主要使用于MacOSX和GNUstep这两个使用Open ...
- php面向对象之构造函数和析构函数
php面向对象之构造函数和析构函数 简介 php面向对象支持两种形式的构造函数和析构函数,一种是和类同名的构造函数(php5.5之前),一类是魔术方法(php5.5之后).与类名相同的构造函数优先级比 ...
- lightoj--1294--Positive Negative Sign(水题,规律)
Positive Negative Sign Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu ...