静态:静态成员是属于类的。
普通成员是属于对象的;
class Ren{ public $name;//普通成员 }
class FenBi{ public static $color; //静态成员 public $length; public static function test(){ //echo "红色的粉笔"; echo "长度为:{$this->length}";//静态的方法里面不可以包含普通成员
}
public function ceshi(){
echo "颜色为".FenBi::$color; } } //普通的方法里面可以包含静态成员
关键字:static
给类的静态成员赋值:
FenBi::$color ="红色";
FenBi::test(); //调用静态方法
静态的方法里面可以包含普通成员吗?不能。
调用类的静态方法:
$f = new FenBi(); $f->censhi();
class A{ public function tanchu(){ echo "输出一个对象"; var_dump(new B("张三")); } } class B{ public $b; public funtion __construct($b){ //构造函数 $this->b = $b; } }
抽象类:更加抽象的一个类,无法直接实例化对象,主要作为父类存在。不能被实例化。
抽象方法:抽象的一个方法,不能直接调用。
关键字:abstract
abstract class Ren{ public abstract function test();//不能加花括号,不包含函数体 } class China extends Ren { public function test(){ //子类实现抽象类的抽象方法 echo "aa"; } } $c = new China();
接口:极度抽象的类,只能包含抽象方法。控制子类必须要实现的功能。
关键字:interface
interface USB{ public function read(); public function write(); }
实现接口的类,关键字为implements
interface USB{ public function read(); public function write(); } class ShuBiao implements USB{ public function read(){ echo "鼠标插入"; } public function write(){ echo "给鼠标供电了"; } } $s = new ShuBiao(); $s->read();
输出: