原生php 使用重點 要點 忽略點!
阿新 • • 發佈:2017-12-06
protect 功能實現 protected nds 直接 名稱 忽略 new 大於等於
1.實例化類時,需要用 :: 調用常量
1 class MyClass3{ 2 const CONST_VALUE = ‘A constant value‘; 3 } 4 5 $obj3 = new MyClass3(); 6 echo $obj3::CONST_VALUE;
2.使用靜態方法或者靜態變量 可以不實例化直接用類名 必須使用 :: 調用
1 class MyClass4 2 { 3 public static $my_static = ‘靜態方法的變量<br>‘; 4 5 public static function doubleColon() {6 echo self::$my_static . "\n"; 7 } 8 } 9 10 echo MyClass4::$my_static; 11 MyClass4::doubleColon();
3.抽象類和抽象方法說明
(1).抽象類不能被實例化
(2).抽象類中至少有一個方法是被聲明為抽象的
(3).抽象的方法只是聲明了其調用方式(參數),不能定義其具體的功能實現。
(簡單來說,也就是只能定義抽象方法的名稱,不能在裏面寫邏輯處理)
(4).繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法
(5).子類重定義父類抽象方法時,聲明等級必須大於等於父類
(6).子類可以定義父類中不存在的可選參數
(7).附屬知識點 花括號來界定變量名的邊界 "{}"
1 abstract class AbstractClass 2 { 3 // 強制要求子類定義這些方法 4 abstract protected function getValue(); 5 abstract protected function prefixValue($prefix); 6 7 // 普通方法(非抽象方法) 8 public function printOut() { 9 print $this->getValue() . "\n";10 } 11 } 12 13 class ConcreteClass1 extends AbstractClass 14 { 15 public function getValue() { 16 return "重定義父類的抽象方法"; 17 } 18 19 public function prefixValue($prefix,$xinxin="") { 20 return "{$prefix}重定義父類的抽象方法{$xinxin}哈哈"; 21 } 22 } 23 24 $obj5 = new ConcreteClass1(); 25 echo $obj5->getValue(); 26 echo "<br>"; 27 echo $obj5->prefixValue("多加個參數 "," 新的參數");
原生php 使用重點 要點 忽略點!