PHP类和对象
类是一类东西的结构描述,而对象则是一类东西的一个具体实例。创建一个对象,通常需要写一个类,再将类通过new关键字进行实例化。
示例:
1 | //定义类 |
类与对象看起来比较相似,但实际上有本质的区别,类是抽象的概念,对象是具体的实例。类可以使程序具有可重用性。
PHP类和对象的访问控制
什么是类和对象的访问控制?顾名思义,就是指类或对象来自外部访问的权限控制。
类或对象的访问控制关键字有:
- public:公有的
- protected:受保护的
- private:私有的
PHP语法规定,类属性必须定义为公有、受保护、私有之一,若是类的属性不加上访问控制的前缀将会报错。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。
类的方法也可以定义访问权限,默认为公有。
示例:
1 | //定义一个方法 |
PHP中Static静态关键字的作用
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。
静态方法中,$this伪变量不允许使用。可以使用self,static,parent在内部调用静态方法与属性。
self和static都是调用变量用的,parent用于调用方法。
示例:
1 | class Car { |
PHP类和对象之对象继承
继承是面对对象程序设计中常用的一个特性,同一父类的子类具有很多相同的属性和方法,可以采用继承的特性,来让子类来共享父类的属性和方法,实现代码的复用。
例如汽车就是一个比较大的类,我们也可以称之为基类或父类。汽车这个大类中还分为轿车、货车、越野车等,他们都有一些相同的特性。例如:同样都有轮子、方向盘、刹车、离合。这些相同的特性我们就可以写一个父类,让不同的子类来继承,从而提高代码的复用率。
示例:上面”Static静态关键字的作用”示例中已经有对象继承的内容,下面重点提一下语法。
1 | class Car{ //定义一个类Car |
PHP类和对象之重载
PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过_set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
示例:
1 | class Car { |
方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
1 | class Car { |
当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。
源自:本篇文章为慕课网PHP入门教程的知识总结
声明:以上内容如有不足之处,欢迎联系指正,转载请注明出处!