【關鍵字】
1、final
① final修飾的類為最終類,不能被繼承!!
② final修飾的方法為最終方法,不能夠被重寫
③ final不能修飾屬性!!
2、static
① 可以修飾屬性和方法稱為靜態屬性和靜態方法,也叫類屬性和類方法
static public $name;
static function func(){}
② 靜態屬性,靜態方法,只能使用類名呼叫
person::#name;person::func();
③ 靜態屬性和方法,在類第乙個裝載時宣告,會先於物件產生(成員屬性和方法在物件例項化時宣告)。
④ 在靜態方法中,不能呼叫非靜態屬性和方法;
在非靜態方法中,可以呼叫靜態屬性和方法;
(因為靜態屬性和方法在類裝載時宣告,此時還沒有物件,更沒有成員屬性
⑤ 在類中,可以使用self關鍵字代指本類宣告
class public{
static public $name;
function say(){
`echo self::$name;√
`echo person::$name;√
echo person::$name;
⑥ 靜態屬性是共享的。也就是new很多物件也是共用乙個屬性。
3、const
① 在類中,宣告常量不能使用define()函式,而且必須使用construction關鍵字!!
const count = "16億";
② const宣告的常量,依然要求必須全部大寫,而且不能使用$符號!!!
③ 常量一點宣告不能改變!!與static相同只能使用類名呼叫!!!
echo person::count;
4、instanceof 操作符
檢查乙個物件是否是乙個類的例項!!(包括父類,父類的父類。。。。。)
var_dump($s instanceof student);√
var_dump($s instanceof person);√
【小總結】幾種常用的操作符
1、 . 只能連線字串的作用。 "".""
2、 => 宣告陣列時,進行鍵值關聯。 ["key"=>"value"];
3、 -> 使用物件呼叫成員屬性和方法時 。$zhangsan -> name; $this->name;
4、 :: ①使用類名呼叫靜態屬性和方法時。 person::$name;self::$name;
使用類名呼叫常量。 person::count;
②使用parent呼叫父類已有同名方法時。 parent::say();
[單例模式]
單例模式也叫單態模式,可以保證乙個類只能有乙個物件例項
實現思路:
① 建構函式私有化,不允許使用new關鍵字拿到例項化物件
② 所以需要對外提供乙個方法,在方法中,判斷記憶體是否已經有這個物件了,如果為空則建立乙個新物件返回,如果不為空則直接返回
③ 由於類外無法拿到物件,所以要呼叫方法必須使用類名。n那麼方法就必須是靜態方法
④ 由於方法是靜態方法,靜態方法中不能使用非靜態屬性,所以屬性必須是靜態屬性
⑤ 全部完成後,在類外面可以直接使用我們提供的靜態方法,獲得為一物件:
person::getsingle();
PHP單例模式
模式對於oop開發人員尤其有用,因為他有助於建立穩定的api,並且仍然保持一定的靈活度。一種模式可以幫助我們定義負責完成特定任務的物件,還可以允許我們全部修改掉某個類而不用修改與這些類打交道的 前者被稱為類的職責,後者被稱為類的多型性。單例模式被當作職責模式,他用來在應用程式中建立乙個單一的功能訪問...
php單例模式
單例模式 單例類 1 建構函式需要標記為private 訪問控制 防止外部 使用new操作符建立物件 單例類不能在其他類中例項化,只能被其自身例項化 2 擁有乙個儲存類的例項的靜態成員變數 3 擁有乙個訪問這個例項的公共的靜態方法 常用getinstance 方法進行例項化單例類,通過instanc...
php 單例模式
單例模式 身份證號碼 單例類identitycardno 身份證號碼類 class identitycardno public function getinstance else return self instance private function setidentitycardno no p...