php面向对象中的魔术方法中文说明

1.__construct()

实例化对象是被自动调用。当__construct和以类名为函数名的函数 同时存在时调用__construct,另一个不背调用。

类名为函数名的函数为老版的构造函数。

2.__destruct()

当删除一个对象或一个对象操作结束是被调用。

3.__call()

对象调用某个方法。若方法不存在,这调用__call 这个方法

4.__get()

读取一个对象属性,如果对象属性是私有的会调用它

5.__set()

给一个对象属性赋值时如果属性是私有的会调用它

6.__toString()

打印一个对象的时候会被调用。

7.__clone()

克隆对象时被调用,如:$a=new test(); $a1=clone $a;

8.__sleep()

Serialize 之前被调用,若对象比较大,想删减一点东西在序列化可以用它。

9.__wakeup()

Unserialize时被调用,做些对象的初始化工作。

10.__isset()

检测一个对象的属性是否存在如果 检测的属性是私有的时候会被调用。

11.__unset()

删除一个对象属性时如果 删除的对象属性是私有的会被调用

12.__set_state()

调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

13.__autoload()

实例化一个对象时,如果对应的类不存在,则该方法被掉用。

(0)

相关推荐

  • 浅谈PHP中的面向对象OOP中的魔术方法

    一.什么是魔术方法: PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数. 例如: function __construct(){} 在new一个新对象时自动调用此函数 二.PHP中都有那些魔术方法,以及它们的作用: 1.__construct():构造函数,new对象时自动调用 eg: class Person{ public $name; public $age; function __construct($name,$age){

  • 详谈PHP面向对象中常用的关键字和魔术方法

    PHP面向对象中常用的关键字   final 1.final不能修饰成员属性(类中常量不是用这个关键字) 2.final只能修饰类和方法 作用: 使用final修饰的类不能被子类继承 使用final修饰的方法不能被子类覆盖 用来限制类不被继承,方法不被覆盖就使用final <?php //final修饰的类不能被继承 final class Person{ var $name; var $age; var $sex; function __construct($name,$age,$sex){

  • php面向对象中的魔术方法中文说明

    1.__construct() 实例化对象是被自动调用.当__construct和以类名为函数名的函数 同时存在时调用__construct,另一个不背调用. 类名为函数名的函数为老版的构造函数. 2.__destruct() 当删除一个对象或一个对象操作结束是被调用. 3.__call() 对象调用某个方法.若方法不存在,这调用__call 这个方法 4.__get() 读取一个对象属性,如果对象属性是私有的会调用它 5.__set() 给一个对象属性赋值时如果属性是私有的会调用它 6.__t

  • JavaScript面向对象中接口实现方法详解

    本文实例讲述了JavaScript面向对象中接口实现方法.分享给大家供大家参考,具体如下: 接口是面向对象编程的基础,它是一组包含了函数型方法的数据结构,与类一样,都是编程语言中比较抽象的概念.比如生活中的接口,机顶盒,人们利用它来实现收看不同频道和信号的节目,它犹如对不同类型的信息进行集合和封装的设备,最后把各种不同类型的信息转换为电视能够识别的信息.在编程语言中的接口,实际上是不同类的封装并提供统一的外部联系通道,这样其他对象就可以利用接口来调用不同类的成员了. --整理自<jQuery开发

  • PHP中的魔术方法总结和使用实例

    魔术方法是PHP面向对象中特有的特性.它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法).魔术方法很多还是成对出现的,以下列出目前PHP中所有的模式方法. 1.__construct,__destruct __constuct构建对象的时被调用: __destruct明确销毁对象或脚本结束时被调用: 2.__get,__set __set当给不可访问或不存在属性赋值时被调用 __get

  • 深入PHP5中的魔术方法详解

    从PHP 5以后的版本,PHP中的类就可以使用魔术方法了.其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法. 1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的.◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名.◆__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值

  • ThinkPHP查询中的魔术方法简述

    我们在使用thinkphp开发的时候,有时候会用到getById('1')这个方法快速的获取一条信息的内容,这个方法比用where(" id =1 ")->find()好用多了,同时查询效率也比find快速. 很多人在刚开始接触这个方法的时候,没有多留意它的内部实现机制,仅仅认为是通过id来获取信息,而事实并非如此. 例如有的系统里存在getByTitle("nihao").getByMoney('1000')这类方法,这些与刚才提到的getById('1')

  • PHP类中的魔术方法(Magic Method)简明总结

    1. __construct()和__destruct() 在实例被 创建/销毁 的时候被调用,都可以传递0个或多个参数. class A { function A() { echo "build A"; } function __destruct() { echo "destroy A"; } } $obj = new A(); //unset($obj); Note:The destructor method will be called as soon as

  • PHP中的常见魔术方法功能作用及用法实例

    概述 在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发.这篇文章简单总结了PHP中提供的魔术方法. 开始之前 在总结PHP的魔术方法之前先来定义两个类,以便后边示例使用: 复制代码 代码如下: <?php class Device {     public $name;               public $battery;            public $d

  • PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析

    本文实例讲述了PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法.分享给大家供大家参考,具体如下: 1.对象克隆 clone PHP4面向对象功能一个很大的缺点,是将对象视为另一种数据类型,这使得很多常见的OOP方法无法使用,如设计模式.这些方法依赖于将对象作为引用传递给其他类方法,而不是作为值传递,而按值传递却是PHP的默认做法.幸好,PHP5解决了这个问题,现在所有对象在默认情况下都被视为引用.但是,由于所有对象都被视为引用而不是值,所以现在复制对象更为困难.如果尝试

  • Python魔术方法详解

    介绍 此教程为我的数篇文章中的一个重点.主题是魔术方法. 什么是魔术方法?他们是面向对象的Python的一切.他们是可以给你的类增加"magic"的特殊方法.他们总是被双下划线所包围(e.g. __init__ 或者 __lt__).然而他们的文档却远没有提供应该有的内容.Python中所有的魔术方法均在Python官方文档中有相应描述,但是对于他们的描述比较混乱而且组织比较松散.很难找到有一个例子(也许他们原本打算的很好,在开始语言参考中有描述很详细,然而随之而来的确是枯燥的语法描述

随机推荐