1. Final 关键字
PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
语法:
final class A{}
final class A{}
final不能用来修饰属性
示例:
class A1{
final public function getnum($conunt){
return $conunt*3;
}
}
class B1 extens A1{
//这里父类的getnum方法使用了final,所以这里无法再重写getnum
//public function getnum($conunt){
// return $conunt*4;
//}
}
2. Static(静态)关键字
声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
为了兼容 PHP 4,如果没有指定访问控制,属性和方法默认为公有。
由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
静态属性不可以由对象通过 -> 操作符来访问。
简单示例:
class text{
public static $a;
public static function all(){
self::$a='www';
}
}
text::all();
echo text::$a;
}
我们同样可以使用static关键字来限制变量 这个时候变量不会一直保持上一次负值时候的值
3. 类常量(const)
在某些情况下,可能有这样的需求:当不希望一个成员变量被修改,希望该变量的值是固定不变的,这时可以使用const常量(常量名应该全用大写,并且不带$符号,常量不可以加修饰符)
语法:
const 常量名=常量值; //必须赋初值,因为常量是不能修改的
调用:
类名::常量名[本类内部可用self::常量名] 或者 接口名::常量名 //接口中只能使用常量,不能使用变量
示例:
class A{
const TAX_RATE=1.0;
function paytax($salary){
return $salary*self::TAX_RATE;
}
}
$a=new A();
echo $a->paytax(100);
注:
1、常量可以被子类继承
2、常量是属于某个类的,而不属于某个对象