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

    麦先生引言:在学习php面向对象的编程思想中,我们会遇到很多的能够自动调用的魔术方法,每个魔术方法都有其特定的触发场景,但其根本目的是在于编写和实际使用过程中阻止程序报错而生;

    常见的魔术方法有:music=> gusic(根据首字母拼音大写由gusic联想到music)    以及构造,析构方法,以及特殊的关键字fsci -- cats 和 ai

        魔术方法                  触发场景

        <!--gusic-------------------------------------------------------------------------------------------------------start------------>

        __get                    当在类的外部获取一个非公有或者不存在的属性时会自动触发该魔术方法

        __unset                  当在类的外部试图销毁一个非公有或者不存在的属性时会自动触发该魔术方法

        __set($name,$value)   当在类的外部对内部某个非公有或者不存在的属性重新赋值时会自动触发该方法

        __isset($name)       检测一个非公有或者不存在的属性值时会自动触发该方法

        __call                        当调用一个非公有或者不存在的成员方法时会自动触发该魔术方法

        <!--gusic---------------------------------------------------------------------------------------------------------end------------->

        __construct(){}         当用new关键字实例化类时自动触发该魔术方法 (常用)

        __destruct                析构方法:1,文本执行结束时;2,使用unset销毁变量;3,重新给成员属性赋值时触发;

    关于成员属性和方法被封装后的权限问题:

          类的外部      子类的内部      本类

    public         可以         可以       可以

    private   不可以       可以         可以

    protected  不可以       不可以      可以

    一些特殊的关键字和魔术方法

    <!--fsci-cats------------------------------------------------------------------------------------------------------------start------------->

    名称                  简介

    f => final 版本终结者;       一个可以修饰成员属性和方法的只能在内部专用的霸道本类;被他修饰的类不能被继承,方法不能被重写;

    s =>与new和$this有"仇"的static;  与3P修饰符一起使用,通常尾随其后,名称之前,且被修饰的成员属性是一个共有属性;特有的访问形式

                     类的内部:self::成员属性/成员方法   类的外部  类名::成员属性/成员方法

    c => const 爱在类内部玩的常量定义方式; 格式const AB = ‘‘; 注意:其值对计算、可调用函数、变量"不感冒",且不参与流程控制;因而总结为类的

                     内部常用const 类的外部用Define定义  访问形式与静态一致;

    i => instanceof(DNA检测仪);  用于确定某对象是否是由该类或者该类的子类实例化而来的;

    c => clone克隆;                       常与__clone合用,使用__clone复制对象时自动执行,目的是初始化新创建的对象(镜像且无值);

    a =>__autoload(程序猿心头想);  为懒人自动引入文件所用;

    t => toString(魔术方法)(挑食)           当对对象进行字符串操作时执行,只要返回字符串类的值,其他的都不要;

    s =>serialize(串行化,序列号);    伴随着两个魔术方法 __sleep串行化和__wakeup反串行化;

    <!--fsci-cats------------------------------------------------------------------------------------------------------------end--------------->

    <!--ai--------------------------------------------------------------------------------------------------------------------start------------->

    a =>abstract抽象(关键字) 常用3P之后,类class之前; 特点:被abstract修饰的类不能直接被实例化且成员方法没有代码体;

      作用:相当于给子类定义一个固定的模版,让其在继承使用时,必须先将所有的抽象方法全部重写否则无法使用;

    i=>interface(接口) 使用interface关键字定义接口;在接口里 只包含类常量和抽象方法;接口的继承是 implements 与 其他的extends不同;

    抽象类和接口的相同点:1,都不能直接被实例化;都可以有抽象方法;都可以通过类常量访问;都可以给子类定义模板;

           不同点:接口中抽象类不用abstract修饰;接口中只有interface无class;接口中只有抽象方法和类常量;接口只能public;

    <!--ai---------------------------------------------------------------------------------------------------------------------end------------->

时间: 2024-12-06 03:36:03

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

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

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

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

__autoload($classname);这个魔术方法与其他魔术方法不同的是,它不是在类中使用的,其他都是在类内部使用,只要在页面中用到一个类,就会自动将这个类名传给这个函数的参数.在开发中用它来自动加载类. __sleep():是在对象序列化也叫串行化时,自动调用的方法,因为对象序列化的时候serialize($object),如果类里不加这个魔术方法,会自动将类中的所有属性全部序列化,如果只想让某些属性被序列化,就要用到这个方法,这个方法返回一个由类的属性组成的数组.序列哪个属性就将那个

PHP 面向对象中常见关键字使用(final、static、const和instanceof)

PHP 面向对象中常见关键字的使用: 00x1.Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. 总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的. 00x2.Static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,

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

php面向对象类中常用的魔术方法 1.__construct():构造方法,当类被实例化new $class时被自动调用的方法,在类的继承中可以继承与覆盖该方法,例: //__construct() class construct{ public function __construct(){ $this->var = "this is var"; } } class con2 extends construct{ public function __construct(){ $

php中12个魔术方法

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

php中的常用魔术方法总结

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

前端学PHP之面向对象系列第二篇——魔术方法

显示目录 目录 [1]构造方法 [2]析构方法 [3]不可访问属性[4]对象复制[5]字符串[6]对象不存在[7]自动加载类[8]串行化[9]函数调用 前面的话 php在面向对象部分有很多相关的魔术方法,这些方法为面向对象实现提供了便利,本文将详细介绍魔术方法 构造方法 大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,通常用它执行一些有用的初始化任务 构造函数的声明与其它操作的声明一样,只是其名称必须是两个下划线__construct( ).这是PHP5中的变化:

PHP 中 16 个魔术方法详解

前言 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或emp

PHP中常用的魔术方法

我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量: __construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic; 1,__constuct()构造函数 通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动