-
類調用 use\venter\session\Imooc;
類重命名 use\venter\Imooc as Imooc2;
方法調用 use function venter\iLikeImooc;
常量使用const: use const venter\IMOOC;
查看全部 -
final class Dad{}前加關鍵字不會被子類繼承
final protected function Kungfu前加final方法不會被重寫
查看全部 -
子類有和父類相同方法的時候顯示自己的方法。
子類沒有構造方法的時候會自動繼承父類的構造方法,都有的時候就調用自己的構造方法。
查看全部 -
全局空間使用\
查看全部 -
實現工廠模式:在定義多個功能類似的類,可以加一個工廠類,在這個工廠類里只返回實例化的后的類,然后切換底層的功能就只能修改工廠類了;
比如memcache和redis驅動,可以定義一個Cache類來作為工廠類來實現緩存切換;
查看全部 -
要實現單例首先要將__construct和__clone方法私有化,然后定義個獲取實例的靜態方法,使用instanceof來判斷實例化的對象是否屬于當前對象,如果屬于則直接返回,不屬于則new一個;
單例模式的好處可以減少內存開銷;
查看全部 -
抽象類跟接口差不多,都可以定義空方法,但是接口里面定義的方法不能實現具體功能,只能定義空方法(不能寫具體的代碼),而抽象類可以定義空方法,也可以實現方法的具體功能(可以寫具體的代碼);
查看全部 -
面向對象編程其實也是面向接口編程,使用接口來設計功能會使代碼松耦合,設計功能的時候盡量使用接口來設計功能。
接口是不能被實例化的;
接口之間可以繼承;
查看全部 -
php的類是單繼承的,但是要實現多繼承可以使用trait來定義,就解決了多繼承的問題;
在類中使用use關鍵字類導入trait;
查看全部 -
對象之間的賦值是淺拷貝(其中一個對象的值會隨著另外一個對象的值改變),變量之間賦值是深拷貝(其中一個變量的值的改變不會影響另外一個變量的值);
要把對象之間的賦值變成深拷貝使用"clone"關鍵字;
淺拷貝比較省內存,深拷貝
比較耗內存;
查看全部 -
工廠模式:負責用來創建類的實例
查看全部 -
單例模式:確保一個類只有一個實例
查看全部 -
抽象類(abstract):區別于接口 interface 在于,里面可以包含具體的方法
查看全部 -
接口 interface:定義空的方法,然后其他類來實現方法的具體操作
接口不能被直接實例化
接口可以繼承
接口可以使用常量?
查看全部 -
使用 trait 定義多個方法或屬性,就可以在類里面 使用 use 去調用多個 trait 定義的方法或屬性,解決了類的單一繼承問題
查看全部
舉報