學習總結 (12 17)

2021-09-26 20:33:26 字數 2660 閱讀 6544

1.靜態變數的型別說明符是static。

類的內部訪問靜態成員必須使用self關鍵字和::操作符;在類的外部訪問靜態成員必須使用類名和操作符::,而不需要建立物件。

static全域性變數和普通全域性變數區別:static全域性變數只被初始化一次,防止在其他檔案單元中被引用。

static變數的好處:不會被其他檔案所訪問,修改其他檔案可以使用相同名字的變數,不會發生衝突。

3.靜態方法:靜態方法訪問的屬性必須是靜態的。只要在靜態方法中沒有$this關鍵字,它就會轉化成靜態方法來處理。

4.普通方法和靜態方法的區別:普通方法需要物件去呼叫,需繫結$this,即普通方法必須要有物件,然後讓物件來呼叫;而靜態方法,不屬於哪乙個物件,即不需要物件也可以呼叫,通過類名來呼叫。

1.單例模式,就是指乙個類只有乙個物件例項。

目的是:可以防止頻繁建立物件而造成資源浪費。

2.設計單例模式,需要注意以下幾點:

a.乙個類只能有乙個物件;

b.必須是自行建立這個類的物件;

c.要向整個系統提供這乙個物件;

3.封裝單例模式的類時,需做到以點幾點:

a.只提供私有的建構函式,

b.含有乙個該類的靜態私有物件,

c.提供乙個靜態的公有的函式用於建立或獲取它本身的靜態私有物件。

d.有乙個private的clone方法,防止轉殖;

1.物件之間的賦值,實際就是引用賦值,兩個物件之間賦值後,就是乙個物件了。所以當乙個物件的內容發生變化後,另乙個物件的內容也會發生變化。

2.普通變數之間的賦值,如果也想使用引用賦值,必須使用&,&符表示取位址符,使用&後,兩個變數變成同乙個變數互相影響。

3.使用clone方法可以複製乙個物件,並且不會讓複製後的物件受原來物件的影響。

<?php

class student

$s1 = new student();

$s1->name = '張三';

//轉殖物件

$s2 = clone $s1;

$s2->name = '李四';

echo $s1->name;

echo '

';echo $s2->name;

輸出結果:

張三李四

1.命名空間乙個最明確的目的就是解決重名問題,php中不允許兩個函式或者類出現相同的名字,否則會產生乙個致命的錯誤。

2.命名空間通過關鍵字namespace 來宣告。如果乙個檔案中包含命名空間,它必須在其它所有**之前宣告命名空間。

3.預設情況下,所有常量、類和函式名都放在全域性空間下,就和php支援命名空間之前一樣。

4.要想使用命名空間中的類,必須要引入這個類,如:use model\student。model是定義的命名間,student是想要使用的命名空間中的類名。

5.引入命名空間的類時,也可以給類重新命名,原有的類名不能再使用。

6.在有些場景下必須給類重新命名,比如還有乙個類也是student,在檔案student2.php中,如果想要同時使用這兩個student類,需要給引入的類重新命名。

7.instanceof用法:instanceof運算子是在執行時指出物件是否是特定類的乙個例項。

1.魔術方法包括:

__construct(),類的建構函式

__destruct(),類的析構函式

__call(),在物件中呼叫乙個不可訪問方法時呼叫

__callstatic(),用靜態方式中呼叫乙個不可訪問方法時呼叫

__get(),獲得乙個類的成員變數時呼叫

__set(),設定乙個類的成員變數時呼叫

__isset(),當對不可訪問屬性呼叫isset()或empty()時呼叫

__unset(),當對不可訪問屬性呼叫unset()時被呼叫。

__sleep(),執行serialize()時,先會呼叫這個函式

__wakeup(),執行unserialize()時,先會呼叫這個函式

__tostring(),類被當成字串時的回應方法

__invoke(),呼叫函式的方式呼叫乙個物件時的回應方法

__set_state(),呼叫var_export()匯出類時,此靜態方法會被呼叫。

__clone(),當物件複製完成時呼叫

__autoload(),嘗試載入未定義的類

__debuginfo(),列印所需除錯資訊

2.__autoload(),這是乙個自動載入函式,在php5中,當我們例項化乙個未定義的類時,就會觸發此函式。

它的主要功能是構造需要載入的類檔案的路徑,然後包括包含類檔案。這一切都是當程式找不到類檔案時自動執行的。

1.__autoload() 函式,它會在試圖使用尚未被定義的類時自動呼叫。通過呼叫此函式,指令碼引擎在 php 出錯失敗前有了最後乙個機會載入所需的類。如果需要例項化的物件,在本檔案中已經找到該類的定義的話,就不會觸發__autoload函式.

spl_autoload_register() 提供了一種更加靈活的方式來實現類的自動載入。

2.當檔案中同時出現__autoload和spl_autoload_register時,以spl_autoload_register為準.

3.spl_autoload_register可多次呼叫,註冊的多個函式將在事件發生時依次執行。

12 17上週效能測試總結

上週進行了認證介面的效能測試 又收穫了很多,有一點和架構搭上了關係 首先整個服務的架構大概是 niginx web服務 gateway cloud 除了cloud是主要處理業務的服務,其他服務都只負則 理論上不會成為瓶頸 根據前期由於各方面由於硬體達到瓶頸而使得測試結果不準確,總結了下正確的測試流程...

1217 最後贏家

description 有16只隊伍參加一種淘汰賽,每一場的贏家將參加下一場比賽,而輸家將直接淘汰,現在請你根據比賽情況分析最後的贏家是誰 input 第一行是測試組數c 1 c 100 每組由16行組成,以隨機順序描述了比賽場次及情況,格式是 t 1t 2 g 1 g 2 t 1 和t 2 是隊伍...

大數乘法 zju 1217

大數乘 time limit 5000ms memory limit 32768k 給定一些大數,請計算其積。輸入資料中含有一些整數對 對數 1000 若某對整數 整數字數 200 的值為0 0,則表示輸入結束。每對整數對應乙個乘法計算結果,輸出該結果,每個結果輸出完後應回車。2 3 12 34 0...