面向对象中的常用魔术方法

__autoload($classname);这个魔术方法与其他魔术方法不同的是,它不是在类中使用的,其他都是在类内部使用,只要在页面中用到一个类,就会自动将这个类名传给这个函数的参数。在开发中用它来自动加载类。

__sleep():是在对象序列化也叫串行化时,自动调用的方法,因为对象序列化的时候serialize($object),如果类里不加这个魔术方法,会自动将类中的所有属性全部序列化,如果只想让某些属性被序列化,就要用到这个方法,这个方法返回一个由类的属性组成的数组。序列哪个属性就将那个属性放到数组中。作用:将对象部分序列化。

$str  = serialize($object)//将对象序列化成二进制的字符串。

$newobject = unserialize($str);//将二进制的字符串转成一个新的对象,这个新对象拥有原来那个对象的属性和方法。

__wakeup():在反序列化的时候,自动调用的方法,因为在对象反序列化的时候会诞生一个新的对象,而每诞生一个新的对象,一般都要将这个对象初始化(当然不是必须的,视情况而定),所以这个魔术方法的作用就是将新诞生的对象进行初始化。

__clone():在克隆对象的时候自动调用的方法,这个方法中的$this指的是刚被克隆出来的对象,这个魔术方法也是用来给新克隆出的对象进行初始化的。$that指原来那个对象但不好使。

__call($fnName,args):当对象在外部调用类中不存在的方法时自动调用,处理一些不存在方法的错误调用,这个方法接受两个参数,第一个参数为访问不存在的方法名,第二个参数为不存在的方法的参数数组。

__toString():直接输出对象引用时自动调用,因为对象不能在类里直接使用,用来快速获取对象字符串表示的最快捷方式。

面向对象中的常用魔术方法

时间: 2024-11-05 16:08:45

面向对象中的常用魔术方法的相关文章

php中的常用魔术方法总结

以下是对php中的常用魔术方法进行了详细的总结介绍,需要的朋友可以过来参考下 常用的魔术方法有:__Tostring ()  __Call()  __autoLoad()  __ clone()  __GET()   __SET()    __isset()  __unset() 1.__Tostring()   用于定义输出对象引用时调用  常用于打印一些对象的信息 必须有返回值eg:有一个persion类Persion per =new persion()Echo per;    //直接调

[麦先生]PHP面向对象中常见的魔术方法以及关键字

麦先生引言:在学习php面向对象的编程思想中,我们会遇到很多的能够自动调用的魔术方法,每个魔术方法都有其特定的触发场景,但其根本目的是在于编写和实际使用过程中阻止程序报错而生; 常见的魔术方法有:music=> gusic(根据首字母拼音大写由gusic联想到music)    以及构造,析构方法,以及特殊的关键字fsci -- cats 和 ai 魔术方法                触发场景 <!--gusic---------------------------------------

面向对象中所有的魔术方法和关键字

魔术方法构造函数,对类里面成员进行初始化function __construct(){}析构函数,在对象释放的时候自动执行function __destruct(){} __set方法function __set($name,$value){}                                                          __set和__get  主要用在封装里面__get方法function __get($name){} __tostring()方法    

php中常用魔术方法的举例

魔术方法是php面向对象特有的功能,并且有时候能实现意想不到的效果,包括前面提到的构造函数.析构函数.还有__clone函数,另外再简单的介绍几个: 1.__toSring和__invoke 1 class Moshu{ 2 public function __tostring(){ 3 return "This is the Class MagicTest.<br />"; 4 } 5 public function __invoke($x){ 6 echo "

Python 基础之面向对象之常用魔术方法

魔术方法 1.__init__魔术属性触发时机:实例化对象,初始化的时候触发功能:为对象添加成员,用来做初始化的参数:参数不固定,至少一个self参数返回值:无#(1) 基本方法 #例:class MyClass():    def __init__(self):        #print(111)        self.name = "one"#实例化对象 [类的实例化]obj = MyClass()print(obj.name)#(2) __init__可以传递多个参数 #例:

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

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

php中12个魔术方法

本文列举了php面向对象当中12个魔术方法,并对此进行一一详细介绍,希望对新手有所帮助. 1.构造方法: __construct() 参数:自定义 触发时机:new的一瞬间自动调用 作用:初始化成员属性 2.析构方法__destruct() 参数:无 触发时机:在对象释放的一瞬间自动调用 作用:做收尾工作,数据库关闭连接等 3.__get() 参数:一个,成员属性名称 触发时机:在类外部访问私有的受保护的或者未定义的成员属性时自动调用 作用:控制私有的受保护的未定义的成员属性的访问 4.__se

python常用魔术方法概览

构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __getattr__(self, name) 如果属性已经定义了那么不会再执行__getattr__()了,而是直接通过访问实例字典返回结果,__getattr__()只在访问未定义的属性时被触发 __setattr__(self, name, value) 直接给属性赋值 cls.name = val

问题:C# ToString(&quot;P&quot;);结果:c#中的常用ToString()方法总结

c#中的常用ToString()方法总结 很多类都重写了ToString方法, 导致很多类的tostring到底执行了什么,有哪些参数,都不清楚 对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2&q