<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<?php
class Demo1{
public static $name='peter';
public static $salary=2000;
public static function show(){
//return self::$name;//访问本类中的静态属性,self::就是当前类
return '年龄是:'.static::$age.'<hr>姓名是:'.static::$name;//访问本类中的静态属性,static::就是当前类
//static 和self parent是不一样的,它对应的类是动态设置的,由调用类决定,如果说self和parent是
// 静态绑定到类的话,static就是动态绑定到类,叫做静态延迟绑定(后期静态绑定)
//静态绑定(self和parent)它们与类的绑定是在代码的编译阶段进行,而static与类的绑定是在代码的运行时才进行绑定,所以叫静态延迟绑定(与类绑定的时机不同)
}
}
class Demo2 extends Demo1{
public static $sex='male';
public static $age=19;
public static function display(){
//parent::与父类进行静态绑定,self::与Demo2类静态绑定
// return parent::$name.'的工资是'.parent::$salary.'性别是:'.self::$sex;
return parent::$name.'的工资是'.parent::$salary.'性别是:'.static::$sex;
}
}
// echo '姓名是:'.Demo1::$name;
// echo '姓名是'.Demo1::$name;//在外部访问类中的静态属性
// echo '<hr>';
// echo '姓名是:'.Demo1::show();//在外部访问静态属性
echo Demo2::show();//在外部访问静态属性
// echo '<hr>';
// echo Demo2::display();
?>
<?php
class Demo1{
public static $name='peter';
public static $salary=2000;
public static function show(){
//return self::$name;//访问本类中的静态属性,self::就是当前类
return '年龄是:'.static::$age.'<hr>姓名是:'.static::$name;//访问本类中的静态属性,static::就是当前类
//static 和self parent是不一样的,它对应的类是动态设置的,由调用类决定,如果说self和parent是
// 静态绑定到类的话,static就是动态绑定到类,叫做静态延迟绑定(后期静态绑定)
//静态绑定(self和parent)它们与类的绑定是在代码的编译阶段进行,而static与类的绑定是在代码的运行时才进行绑定,所以叫静态延迟绑定(与类绑定的时机不同)
}
}
class Demo2 extends Demo1{
public static $sex='male';
public static $age=19;
public static function display(){
//parent::与父类进行静态绑定,self::与Demo2类静态绑定
// return parent::$name.'的工资是'.parent::$salary.'性别是:'.self::$sex;
return parent::$name.'的工资是'.parent::$salary.'性别是:'.static::$sex;
}
}
// echo '姓名是:'.Demo1::$name;
// echo '姓名是'.Demo1::$name;//在外部访问类中的静态属性
// echo '<hr>';
// echo '姓名是:'.Demo1::show();//在外部访问静态属性
echo Demo2::show();//在外部访问静态属性
// echo '<hr>';
// echo Demo2::display();
?>