• php面相对象类中成员


    类中成员

    一个类的内部可以有3种代码:属性、方法类常量它们统称为“类中成员”。

    一般属性

    属性就是放在一个类中的变量。

    定义形式:

    形式1 var  $v1 ; //定义不赋值

    形式2var  $v2 = 2; //定义的同时可以赋值,该值只能是“直接值”,常量(值)

    //不能是变量值,也不能是“计算表达式”

    形式3public  $v1;

    形式4public   $2 = 2; //其实var是“public”一个别名,正式用public更好。

    错误形式:

    $v1 = 1;

    var  $v2 = 1+3; //右边不能是计算表达式

    public   $v3 = $v2; //右边不能是变量

    使用形式:

    $对象->属性名 //注意:属性名前面没有$符号。

    说明:

    通常,可以出现变量(数据)的位置,就可以出现对象的属性。

    一般方法

    方法定义跟原来函数定义几乎一样。

    使用是通过类或类的对象来进行的。

    方法前可以加修饰词:public, protected,private,省略就算public

    方法中$this关键字

    $this是一个“伪对象”,代表当前所属类的当前对象

    举例:

     

    一些简单说法:

    类是定义好的某些对象的“模板/模型”

    对象是根据该模板/模型所“创建”出来的具体物体

    一个对象可以有哪些属性(数据),是由该类来决定的。

    一个对象可以做那些事情(方法),也是由该类来决定。

    通常认为,一个类(对象),就是拥有一些数据,并通过它自己的方法可以去处理这些数据的“独立体”

    一个系统函数:get_class(对象) 

    作用:获得某个对象的“所属类名”——结果只是一个类名字符串。

    $class_name = get_class($p1); //结果可能是:”Person” 

    静态属性

    在定义属性的时候,前面加上关键字:static,此时就是静态属性。

     

    静态属性有什么用?

    对比来说:一般属性,他的值是隶属于该类的具体某个对象(虽然定义在类中),或者说,每个对象的同样的属性的值,有可能不一样。

    静态属性就是:只隶属于类本身——也可以看做是所有对象的“共有数据”。

    静态属性的使用:通过特殊的语法:::(双冒号语法,也叫范围解释符)

    ::$静态属性名

    对比普通属性的使用:

    对象->普通属性名; //普通属性也可以叫做“实例属性”,相应的,对象也叫“实例”

     

    实际上,通过对象也可以使用静态属性(但属于最新的语法,也不推荐):

     

    静态方法

    如果在一个方法的前面加上static关键字修饰,则就变成了静态方法。

    静态方法同样隶属于类,而不是隶属于具体对象。使用方法跟静态属性类似:

    类名::静态方法名();

    从理念上,可以认为,静态方法是只隶属于类,而为所有对象所“共有”。

    如果通过类名来调用静态方法,则该方法中不可以出现$this关键字。

    注意1:$this在静态方法中不能使用。

     

    静态方法中不应调用非静态方法。

    self:

    含义:代表当前类

    使用:通常只能在某个类的某个方法内部代表该类的名称。

     

    构造方法(一般用来初始化数据)

    构造方式是类中的一个“特殊”方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。

    1,该方法名字是固定的,为:__construct();

    2,该方法必须是普通方法(不能是静态方法)

    3,通常该方法应该是public

    4,通常该方法中使用$this这个关键字来对属性进行赋值

    5,当new 类名()的时候,其实是在调用该构造方法

    6,如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配

     

    结果为:

      

    析构方法

    构造方法是“创建”对象的时候会自动调用。

    析构方法是“销毁”对象的时候会自动调用。

    系统方法通常用于在销毁对象的时候来“清理数据”(打扫战场)——如果需要,就可以利用这个机会去处理。

    通常,php程序结束后,所有对象都会自动销毁(其实属于php内部的垃圾回收机制)

    说明:

    1,析构方法通常不太需要去定义。

    2,析构方法不能调用。

    3,析构方法不能有形参。

    4,析构方法中可以用于清理一些在php代码结束后不能清理的数据,如生成的文件。

    对象销毁的几个情形:

    脚本程序运行结束,自动销毁;

    明确地unset()一个对象变量,则被销毁;

    改变对象变量的值,被销毁;

    实际上,更本质来说,当一个对象(new 出来的对象)没有任何一个变量指向它的时候,该对象就会被自动销毁——自然,如果整个程序结束,也会销毁。

  • 相关阅读:
    【Vue学习】vue中 关于$emit的用法
    【Vue学习】vue中watch高级用法deep和immediate
    【Go学习】YAML格式的语法
    LINQ学习笔记(十一)
    LINQ学习笔记(十)
    LINQ学习笔记(八)
    LINQ学习笔记(十二)
    LINQ学习笔记(十三)
    LINQ学习笔记(六)
    LINQ学习笔记(七)
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/9764588.html
Copyright © 2020-2023  润新知