PHP學習——25 PHP面向物件(類的靜態繫結與延遲繫結技術:self,parent,static詳解)
阿新 • • 發佈:2018-11-27
<?php class Employee { public static $name = '湯姆'; public static $age = 22; public static $salary = 4000; public static function show() // 靜態方法 { // self:: 與本類Programmer進行靜態繫結 return '年齡:'.self::$age; // 訪問本類中的靜態屬性 self 就是當前類 } public static function getSex() // 靜態方法 { // self:: 與本類Programmer進行靜態繫結 return '年齡:'.static::$age.',性別:'.static::$sex; // 訪問本類中的靜態屬性 static 就是呼叫者所屬的類 } // static與self、parent是不一樣的,它對應的類是動態設定的,也叫做後期靜態繫結,用於在繼承範圍內引用靜態呼叫的類 // self、parent與類的繫結是在編譯階段執行,static是在執行時繫結呼叫類 } class Programmer extends Employee { public static $sex = 'male'; public static function display() { // parent:: 與父類Employee進行靜態繫結,self:: 與本類Programmer進行靜態繫結 return '姓名:'.parent::$name.' 性別:'.self::$sex; } } echo '姓名是:'.Employee::$name;// 在外部訪問靜態屬性 // 姓名是:湯姆 echo '<hr>'; echo Employee::show(); // 在外部訪問靜態方法 // 年齡:22 echo '<hr>'; echo Programmer::display(); // 姓名:湯姆 性別:male echo '<hr>'; echo Programmer::getSex(); // 年齡:22,性別:male, ?>