物件導向一部分總結

2021-08-19 21:33:37 字數 2807 閱讀 8618

1.靜態變數(加 static)屬於類,程式執行時,就分配空間,常用作常量,使用類就可以呼叫。

2. 例項變數 (不加 static)屬於物件,在例項化(new) 時,分配空間。

3.區域性變數(在函式內的變數)屬於某個**塊(函式),在呼叫呼叫這個函式時,分配空間。

//後期靜態繫結

class a

public static function test()

}class b extends a

}b::test();

5.魔術方法

//魔術方法

class test

public function __get($var)

public function __isset($name)//當isset()或者empty()乙個不存在或者許可權不夠的屬性時呼叫此方法

public function __unset($name)//當銷毀乙個不存在或者許可權不夠的屬性時呼叫此方法

public function __call($name, $arguments)//當呼叫乙個不存在(許可權不夠,第乙個引數是方法名,第二個引數是方法引數)的方法時呼叫

public static function __callstatic($name,$arguments)

public function __invoke($arg)//把物件當函式使用時呼叫這個方法

public function __tostring()//echo物件時呼叫此方法,方法內必須return

}$test = new test();

//$test->abc = 'cehsi';

//empty($test->abc);

//unset($test->abc);

//$test->go(1,'ceshi');

//$test::gogo(2,'ceshi');

//$test('物件當函式使用');

echo $test;

6.物件拷貝

6.1 淺拷貝,通過位址指向同乙個值,乙個變數改變值時另乙個變數值也改變。

6.2 深拷貝,複製出乙個新的值,相互之間互不影響。

//變數之間的拷貝(淺拷貝,深拷貝)

class a

$a = new a;

//$b = $a; //淺拷貝(省記憶體,php預設是淺拷貝)

$b = clone $a;//使用clone則是深拷貝

$b->age = 1;

print_r($a->age);

7.trait關鍵字(解決php是單繼承,無法繼承多個類的問題,是一種**復用機制)

//trait關鍵字

trait a

public function testb()

}trait c

}class b

$b = new b;

$b -> testa();

$b -> testc();

print_r($b->name);

8.介面類

//介面類(可以理解介面是類的模板,介面可以繼承不能例項化)

inte***ce person

class man implements person

public function sleep()

}class woman implements person

public function sleep()

}$user = new woman;

$user ->eat();

$user ->sleep();

9.抽象類

//抽象類(介於介面和類之間的)

abstract class person

//抽象方法

abstract public function sleep();

}class man extends person

//繼承抽象類的子類需要實現抽象類中定義的抽象方法

public function sleep()

}$user = new man;

$user ->eat();

$user ->sleep();

10.設計模式

10.1單例模式

//單例模式(只能被例項化一次,節省記憶體)

class test

private function __clone()//私有的轉殖方法禁止被轉殖

public static function getinstance()

if (self::$_instance == null)

return self::$_instance;

}public function test()}//

//$t = test::getinstance();

$t->test();

10.2工廠模式

//工廠模式

class memach

public function get($k)

public function delete($k)

}class redis

public function get($k)

public function delete($k)

}class cache

}$cache = cache::factory();

$cache ->get(3);

Laravel 一部分總結

1.使用命令自動建立model層 進入所在目錄 php artisan make model test 2增刪改查 toarray 將資料變成陣列 public functionusertest 增 預設有兩個字段,可以在model層關閉,或者在表中新增 public timestamps fals...

測試只是一部分

對於很多測試人員來說,測試相關的內容是工作的全部,這是我們的視角。但是換個角度也許就不是這樣。首先我們工作的地方大部分是商業組織,是某個公司,開發某類產品或者提供某類服務,也就是business。所以從組織的層級往上看,到了一定的級別,其實看到的是業務 產品等東西,當然他們也關心我們技術和競爭對手的...

測試只是一部分

對於很多測試人員來說,測試相關的內容是工作的全部,這是我們的視角。但是換個角度也許就不是這樣。首先我們工作的地方大部分是商業組織,是某個公司,開發某類產品或者提供某類服務,也就是business。所以從組織的層級往上看,到了一定的級別,其實看到的是業務 產品等東西,當然他們也關心我們技術和競爭對手的...