温故php基础之定义

通过在类中使用关键字 var 来声明变量,即创建了类的属性,也叫类的成员属性;

通过在类中声明函数,即创建了类的方法;

使用 new 关键字实例化一个对象。可以同时实例化多个对象;

实例化一个对象后,使用 -> 操作符来访问对象的成员属性和方法;

要在定义的类中访问成员属性或方法,可以使用伪变量 t h i s 。 this 。 thisthis 用于表示当前对象或对象本身 ;

::表示访问属于类自身的成员属性或方法;

从一个或多个先前定义的类中继承数据和方法,可以重新定义或加进新数据和方法;

构造方法是类中的一个特殊方法。当创建一个类的实例时,构造方法会自动调用,其名称必须是 __construct() 。一个类中只能声明一个构造方法,且只有每次创建对象时会自动调用一次,不能主动调用,该方法无返回值;

PHP 不会自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() ;

与构造方法对应的就是析构方法,析构方法允许在销毁一个类之前执行的一些操作或完成一些功能,析构函数不能带有任何参数,其名称必须是 __destruct() ;

PHP 不会自动的调用父类的析构方法。要执行父类的析构方法,必须在子类的析构方法体中调用 parent::__destruct() ;

final 关键字用于定义类和方法,该关键字表示该类或方法为最终版本,即该类不能被继承,或该方法在子类中不能被重载(覆盖);

抽象方法指没有方法体的方法,具体就是在方法声明的时候没有 {} 括弧以及其中的内容,而是直接在声明时在方法名后加上分号结束;

只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类。抽象类同样用 abstract 关键字来定义,抽象类不能被实例化;

如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是 public 权限的,那么这种特殊的抽象类就叫接口 ;

接口使用关键字 interface 来定义,并使用关键字 implements 来实现接口中的方法,且必须完全实现;

如果一个接口中定义的方法名改变了,那么所有实现此接口的子类需要同步更新方法名,而抽象类中如果方法名改变了,其子类对应的方法名将不受影响,只是变成了一个新的方法而已(相对老的方法实现);

在子类覆盖父类的方法时,子类中方法的访问权限不能低于父类被覆盖方法的访问权限;

封装,就是把类(对象)的属性和服务结合成一个独立的单位,并尽可能隐藏内部的细节,只保留必要的接口与外部发生联系;

__autoload() 方法接收的一个参数,就是欲加载的类的类名;

在类中定义静态的成员属性和静态方法使用 static 关键字;

在类中定义常量用 const 关键字,而不是通常的 define() 函数;

范围解析操作符(::)是一对冒号,用于访问静态成员属性、静态方法和常量,以及被覆盖类中的成员和方法;

当在类的外部使用 :: 符号访问这些静态成员、方法和常量时,必须使用类的名字,在类内部访问静态成员属性、静态方法和常量使用self::

在子类访问父类静态成员属性、静态方法,使用 parent::

在子类里面定义了一个和父类同名的方法,且该方法将在子类中将把父类的方法覆盖;

__call() 方法在调用的方法不存在时会自动调用,该方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $args 则以数组的方式接收不存在方法的多个参数;

clone 关键字用于克隆一个完全一样的对象;

如果想在克隆后改变原对象的内容,需要在类中添加一个特殊的 __clone() 方法来重写原本的属性和方法,__clone() 方法只会在对象被克隆的时候自动调用;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值