• 【PHP篇】面向对象基础


    1、声明:class 类名{

                             //成员属性(变量) 修饰符 $变量名=初值;

                            //成员方法(函数) 修饰符 function 函数名(){ 执行;}

                       }

    2、生成类对象:$对象名=new 类名();//也可以不加括号

    3、访问类成员:$对象名->成员名;//成员为成员属性时不加 $

    4、类的内部访问: $this->成员名;//不可直接用成员名,this表示当前类,self表示类名

    5、修饰符:private私有的,不可使用对象直接访问,只能本类内部访问

                        protected保护的,只能本类和本子类内部使用

                        public公有的,默认,类内外部均可用

                        final 最终的,修饰类时不可被继承,修饰的方法不可被覆盖,不修饰成员变量

                        static 静态的,共用类成员,访问时不可用对象访问,类名::静态成员

                        const 类常量,只能修饰类变量,声明赋初值,不可改值,访问:类名::类常量名

    6、构造方法: function  __construct(形参){执行;}   //对象创建时第一个自动调用的方法

    //也可为方法名和类名相同的方法; 两个同时存在时系统调用__construct()

    //构造方法有形参时创建对象时不传递会有警告

    7、析构方法:function  __destruct(){执行;}    //对象消亡时最后一个自动调用方法

    8、变量名调用类变量,可变变量法:

                                    

     

    9、魔术方法:

    成员变量为私有的(private),使用 $对象名->成员变量名 时自动调用如下函数:

    function __get($属性名){  }//属性名字,使用也是与可变变量相同;

    function __set($属性名,$属性值){  }//在外设置私有变量时自动调用

    function __isset($属性名){ return false…;}//在外使用isset函数判断私有变量时自动调用

    function __unset($属性名){   }//在外使用unset函数删除私有变量时自动调用

    function __toString(){return “输出值”}//必须返回字符串值,echo $对象名;时自动调用

    function __call($函数名,$实参数组名){ }//对象所调用函数不存在时自动进入

    static function __callstatic($函数名,$实参数组名){ }//5.3版本,类调用静态函数不存在时自动进入

    function __invoke($形参){ };//5.3版本,在对象名(“实参”);时自动调用

    10、魔术变量:

    1)      __CLASS__当前类名

    2)      __METHOD__当前类方法

     

    11、克隆对象:

    对象引用:$新对象名=$原对象名;//并为参数新对象,只是指针指向同一处

    克隆:$新对象= clone $原对象;//正真的两个对象

    自动调用函数:function __clone(){ $this->新对象成员;}//可初始化新对象

     

     

    12、继承:class 子类名 extends 父类名{  }//访问时直接子类对象调用

    private成员不可被子类内外使用,私有不继承

    成员名相同则覆盖,子类优先,子类内部使用parent::成员名;调用父类成员

    覆盖时权限只能大于或等于原权限

    继承要调用父类构造方法:子类构造方法第一行写parent::__construct(实参);

    13、判断变量是否属于某类:$对象名 instanceof 类名;//返回bool

    14、类的序列化(串行):$序列化字符串名=serialize($原对象名);//对象转字符串,字符串包含所有

                                          function __sleep(){return array(成员变量,成员变量);}//自动调用,返回需串行化变量

    15、类的反序列化:$新对象名= unserialize (“序列化字符串”);//字符串转对象

                                    function __wakeup(){}//自动调用,可初始化类变量

    16、抽象类:修饰符为abstract,不一定要有抽象方法

    17、抽象方法:声明一个方法没有方法体//没有大括号{ },修饰符为abstract,一定在抽象类里

    18、抽象类的继承:子类必须全部实现父类的全部抽象方法,否则不可创建对象

    19、接口:interface 接口名{ }//方法必须全是抽象方法,成员属性必须全是const量,权限必须是public

    20、接口的继承:接口继承接口,是对父接口的扩展新方法和新属性

    21、接口的实现:class类名 implements 接口1,接口2{  }

    22、解析字符串代码:$字符串1="echo 'ttt';";eval($字符串1);//执行输出ttt

     

     

     

  • 相关阅读:
    Debugging Auto Layout:Ambiguous Layouts
    Debugging Auto Layout:Unsatisfiable Layouts
    Debugging Auto Layout
    Auto Layout Cookbook:Views with Intrinsic Content Size
    编译地址与运行地址
    Memory Controller
    ARM寄存器
    C++指针悬挂(赋值运算符重载)
    多态性,友元与静态成员 基础知识小结
    ARM 汇编指令集
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/9940522.html
Copyright © 2020-2023  润新知