PHP學習——24 PHP面向物件(類中靜態成員的建立與訪問技巧:static)
阿新 • • 發佈:2018-11-27
<?php class Employee { // 訪問控制符:指示類成員在哪裡可以被訪問:public/protected/private // 成員狀態符:指示如何訪問該成員:靜態self/parent/static,非靜態:$this-> public static $name = '湯姆';// 公共靜態屬性,類內部/外部/子類均可訪問 protected static $age = 22;// 受保護的靜態屬性,可以在類內部和子類中訪問 private static $salary = 4000;// 私有靜態屬性,只能在類內部訪問 public static function show() // 靜態方法 { // 靜態屬性只允許在靜態方法中訪問,靜態方法不允許使用偽變數$this-> return '年齡:'.self::$age.' ---- 工資:'.self::$salary; } } class Programmer extends Employee { public static function display() { // parent:: 引用父類中的靜態成員(靜態屬性和靜態方法) return '姓名:'.parent::$name.' --- '.parent::show(); } } echo '姓名是:'.Employee::$name;// 外部訪問靜態成員,使用 類名::靜態成員,靜態屬性必須加$符號 // 姓名是:湯姆 echo '<hr>'; echo Employee::show(); // 訪問類中的靜態方法show // 年齡:22 ---- 工資:4000 echo '<hr>'; echo Programmer::show(); // 子類訪問父類中的靜態方法show // 年齡:22 ---- 工資:4000 echo '<hr>'; echo Programmer::display(); // 訪問子類中的靜態方法display // 姓名:湯姆 --- 年齡:22 ---- 工資:4000 echo '<hr>'; $employee = new Employee(); echo $employee::show(); // 用物件也可以訪問類中的靜態方法show // 年齡:22 ---- 工資:4000 echo '<hr>'; echo $employee::$name; // 用物件也可以訪問類中的公共靜態屬性 // 湯姆 // echo '年齡:'.$employee::$age.; // 外部物件不能訪問受保護和私有的靜態屬性 echo '<hr>'; $res = $employee instanceof Employee; // instanceof用於檢查一個物件是否一個類的例項 echo '$employee是Employee的例項嗎? '.($res?"是":"否"); // $employee是Employee的例項嗎? 是 ?>