全面解读php-面向对象
生活随笔
收集整理的這篇文章主要介紹了
全面解读php-面向对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、類的自動載入
//類的自動載入我們使用 spl_autoload_register($autoload_function )。我們需要在不同的地方包含更多不同的類文件,只需要多寫幾個 $autoload_function就可以了。 //例如: spl_autoload_register('my_autoloader');function my_autoloader($class) {include 'classes/' . $class . '.class.php'; }假如程序現在需要包含 Database.class.php, 當程序運行到 my_autoloadder ()時,發現Database.class.php類不存在,就會自動包含進來。
二、PSR-0規范
?三、SPL庫的使用 (Standard Php Library)
1、SPL常用數據結構。
SplStack (棧)
特點:只有一個出入口,跟試管兒一樣,先進后出。
$stack = new SplStack(); $stack ->push('orange'); $stack ->push('banana');$stack->rewind(); while($stack->valid()){ //對象的valid()方法檢查是否到了結尾處。var_dump($stack->current());$stack->next(); } //輸出結果 string 'banana' (length=6) string 'orange' (length=6)SplQueue(隊列)
特點:先進先出,后進后出
$queue = new SplQueue(); $queue->enqueue('A'); $queue->enqueue('B');$queue->rewind(); while($queue->valid()){echo $queue->current(),"\n";$queue->next(); }//輸出結果: //A //B//注: $queue->dequeue(); //用于刪除最前面的一個數據。
SplHeap(j堆,又叫二叉堆)
特點:采用二叉樹的方式存儲數據。
分類:最大堆(大根堆)和最小堆(小根堆)
最大堆:根結點的鍵值是所有堆結點鍵值中最大者,且每個結點的值都比其孩子的值大。
最小堆:根結點的鍵值是所有堆結點鍵值中最小者,且每個結點的值都比其孩子的值小
下面以最小堆來進行說明
$h = new SplMinHeap();// [parent, child] $h->insert([9, 11]); $h->insert([0, 1]); $h->insert([1, 2]); $h->insert([1, 3]); $h->insert([1, 4]); $h->insert([1, 5]); $h->insert([3, 6]); $h->insert([2, 7]); $h->insert([3, 8]); $h->insert([5, 9]); $h->insert([9, 10]);for ($h->top(); $h->valid(); $h->next()) {list($parentId, $myId) = $h->current();echo "$myId ($parentId)\n"; }//輸出結果 1 (0) 2 (1) 3 (1) 4 (1) 5 (1) 7 (2) 6 (3) 8 (3) 9 (5) 10 (9) 11 (9)
SplFixedArray (固定長度的數組)
// Initialize the array with a fixed length $array = new SplFixedArray(5);$array[1] = 2; $array[4] = "foo";var_dump($array[0]); // NULL var_dump($array[1]); // int(2) var_dump($array["4"]); // string(3) "foo"四、鏈式操作
鏈式操作最核心的一點就是要返回 $this
class DataBase {public function where($condition){//....return $this;}public function orderBy($order){//....return $this;}public function limit($limit){//....return $this;} }操作方式:
$db = new DataBase() $db->where()->orderBy()->limit();例如下面這個是yii2上嗎的where方法,return $this 是關鍵
?
轉載于:https://www.cnblogs.com/chrdai/p/11167234.html
總結
以上是生活随笔為你收集整理的全面解读php-面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。