版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
- 访问控制符:public》》protected》》private
- 成员状态符:self/parent/static
- 私有静态属性只能在类内部访问
- 在类中访问静态成员不能使用伪遍历$this,需要使用self::
- 静态属性只允许静态方法访问
- 外部(本类和子类访问都是)访问静态成员必须使用:类名::$属性名
- 外部对象不可以访问静态属性,可以访问静态方法
- instanceof 判断实例对象是否是某类的实例
<?php
class Father
{
//访问控制符:指示类成员在哪里可以被访问:public/private/protected
//成员状态符:指示如何访问该成员:静态self/parent/static 非静态:$this->
public static $name = 'peter'; //公共静态属性,类内部/外部/子类均可访问
private static $age = 28; //私有静态属性,只能在类内部访问
protected static $salary = 3600;//受保护的静态属性,可以在类内部和字类中访问
public static function show(){ //静态属性只允许静态方法访问
// 在类中,访问静态属性不能使用伪变量$this->,需要使用self关键字和::(范围解析符/范围符)
return '年龄:'.self::$age.'---'.'工资:'.self::$salary;
}
}
//创建字类Son,继承Father类
class Son extends Father{
public static function display(){
//parent::引用父类中的静态成员
return '工资是:'.parent::$salary;
}
}
echo '姓名是:'.Father::$name;
//外部访问静态成员,使用类名::静态成员,静态属性必须加$符号
//静态成员(静态属性和静态方法)
echo '<hr>';
echo Father::show();//访问类中的静态方法
echo '<hr>';
echo Son::show();//用子类中访问父类中的静态方法
echo '<hr>';
echo Son::display();//访问字类中的静态方法
echo '<hr>';
$obj = new Father;
echo $obj->show();//外部使用对象也可以访问静态方法
// echo $obj->$name;//外部对象不能访问类中的静态属性
$res = $obj instanceof Father;
echo '$obj是Father类中的实例吗?'.($res ? '是的':'不是');
?>