9 类中静态成员的创建与访问技巧:static

static.php




    
    9 类中静态成员的创建与访问技巧:static




static.php

public static $name = 'peter';//公共静态属性,类内部/外部/子类均可访问    //代码意思:加一些访问限制,内部属性访问控制设置成public,它的成员状态是static
private static $age = 28;//私有静态属性,只能在类内部访问       //它的访问控制设置成(private)私有的
protected static $salary = 3600;//受保护的静态属性,可以在类内部和子类中访问      //它的访问控制设置成(protected)受保护的
public static function show ()//静态方法
{
//静态属性只允许在静态方法中访问;静态方法不允许使用伪变量$this->,因为静态方法是被所有类示例所共享的,不需要对象引用,所以$this不能使用
//双冒号是叫范围解释操作符也叫范围符(self::加属性名), 属性名前一定要加$
return '年龄:'.self::$age.'---'.'工资:'.self::$salary;
}
}

//创建子类Son,继承自Father类
class Son extends Father
{
public static function display()
{
//写一个静态公共方法,在该方法中输出一下父类中受保护的静态属性(salary)
//parent::引用父类中的静态成员
return '工资是:'.parent::$salary;
}
}

//注意在类的外面访问静态属性,要用到类名::加属性($name)
echo '姓名是:'.Father::$name;//姓名是:peter      //外部访问静态成员,使用类名::静态成员,静态属性必须要加$符号
//静态成员(包括静态属性和静态方法)
echo '
'; echo Father::show();//年龄:28---工资:3600 //访问类中的静态方法 echo '
'; echo Son::show();//年龄:28---工资:3600 //用子类访问父类中的静态方法 echo '
'; echo Son::display();//工资是:3600 //访问子类的静态方法 //创建一个对象 $obj = new Father; echo $obj->show();//外部使用对象,也可以访问静态方法 //echo $obj->$name; //会报错 //外部对象不能访问类中的静态属性 //instanceof检测一个对象是否是某一个类的实例,返回值是布尔值true和false echo '
'; $res = $obj instanceof Father; echo '$obj是Father类的实例吗?'.($res ? '是的' : '不是的');//$obj是Father类的实例吗?是的

你可能感兴趣的:(9 类中静态成员的创建与访问技巧:static)