定义:

PHP类中以两个下画线“__”开头的方法被称为魔术方法。

分类:

例如:构造方法:__construct;析构方法:__destruct;动态重载:__set()、__get()、__call()、__callStatic();对象的克隆:__clone()

应用场景:

1、当程序试图修改一个不存在或不可见的类属性时,PHP引擎将会调用__set()方法,当然前提是该方法在类中被定义。__set()的定义格式如下:

function __set($name,$value){

//实现细节

}

其中,$name是动态创建的变量名,$value是该变量的值。

2、当程序试图读取一个不存在或不可见的类属性时,PHP引擎将会调用__get()方法,当然前提是该方法在类中被定义。__get()的定义格式如下:

function __get($name){

//实现细节

}

其中,$name是动态创建的变量名。

3、当程序试图调用一个不存在或不可见的类方法时,PHP引擎将会调用__call()方法,当然前提是该方法在类中被定义。__call()方法的定义格式如下:

function __call($name,$args){

//实现细节

}

其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。

4、从PHP5.3.0开始,可以使用__callStatic()动态创建静态方法。__callStatic()的定义格式如下:

function __callStatic($name,$args){

//实现细节

}

其中,$name是动态创建的方法名,$args是该方法的参数,以数组的形式存在。

5、__clone()方法一旦被定义,类在被复制时就会自动调用它,这样我们就可以在__clone()方法中给引用属性重新开辟内存。__clone()定义格式如下:

function __clone(){

//实现细节

}

PHP 类中的魔术方法的更多相关文章

  1. php类中的魔术方法

    1.构造函数 析构函数class pt{ function __construct($data) { echo "pt is start ..."; $this->pr($d ...

  2. PHP中的面向对象OOP中的魔术方法

    一.什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数.例如: function __construct(){} 在ne ...

  3. php中的魔术方法

    __construct 构造器是一个魔术方法,当对象被实例化时它会被调用.在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承.如果我们 ...

  4. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr

    PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...

  5. python类:magic魔术方法

    http://blog.csdn.net/pipisorry/article/details/50708812 魔术方法是面向对象Python语言中的一切.它们是你可以自定义并添加"魔法&q ...

  6. 巧用PHP中__get()魔术方法

    PHP中的魔术方法有很多,这些魔术方法可以让PHP脚本在某些特定的情况下自动调用.比如 __construct() 每次实例化一个类都会先调用该方法进行初始化.这里我们讲一下__get() 魔术方法的 ...

  7. (转)python类:magic魔术方法

    原文:https://blog.csdn.net/pipisorry/article/details/50708812 版权声明:本文为博主皮皮http://blog.csdn.net/pipisor ...

  8. PHP中的魔术方法和关键字

    PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...

  9. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep

    PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...

随机推荐

  1. Chinese economic influence in North Korea

    Where this new investment is being targeted is also interesting雄性禿 . "If you look at the econom ...

  2. python3下载远程代码并执行

    第一步: 先在gist之类的网站上贴上代码,目的不是高亮,而可以raw的形式获取代码,这样可以省掉处理html的时间,我这里用的是pasteraw: 远程上的代码:http://cdn.pastera ...

  3. C# winform 安装程序打包(自定义操作)

    (一),安装程序 以前用vs制作过安装程序,现在把步骤写出来,有帮助的大家一定要顶哦 第一步:建立工程1.打开vs,新建项目->其他项目类型->安装和部署(這個子项下面有安装项目和Web安 ...

  4. 微软How old do I Look——初体验

    前段时间微软发布了一个可爱的网站how old.net,着实火了一把,全民体验魔镜魅力. 上传自己的靓照到http://www.how-old.net/,它就可以告诉你性别和年龄,大家还习惯称之为“颜 ...

  5. job1

    http://www.newsmth.net/nForum/#!article/Career_Upgrade/221039 http://www.newsmth.net/nForum/#!articl ...

  6. HTML5 LocalStorage 本地存储

    HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ...

  7. 驱动实现led,pwm和中断基础知识

    2015.4.8星期三 晴天 今天老师讲的内容是内核编写led和pwm驱动,实现花样灯和放歌的功能.理解应用和驱动的对接,最后自己实现了在放歌的时候根据歌曲的节奏亮灭一个小灯,应为两个独立的驱动都已经 ...

  8. linux命令:chmod

    1.命令介绍: chmod用来改变系统文件或目录的相关权限,可读,可写,可执行等. 2.命令格式: chmod [选项] 模式 文件 3.命令参数: 必要参数:-c 当发生改变时,报告处理信息-f 错 ...

  9. Cocos2dx对精灵的优化

    cocos2dx针对游戏设计的不同方面会有不同的优化方案,可以对声音,对内存,对图片格式,对色彩等等进行优化.有关这些方面的方法请大家查找其他的文章.我今天要说的是如何对精灵进行优化,程序中我们用到的 ...

  10. iOS--UIView和UIWindow用法

    基础 UI(user interface)是用户界面:iOS的应用是由各种各样的UI控件组成 UIWindow就是一个窗口,学的第一个基础类,就是一个容器,可以在容器上放不同的内容,每个app都需要借 ...