最近開始重新學習物件知識,其實也算是初步深入學習物件和設計模式,希望自己會堅持下去,保持更新還記得,剛開始學習 php 的時候,學到到方法和物件時有乙個很大的疑問,物件與方法相比較那麼麻煩(需要設定屬性,給屬性賦值,例項化類,呼叫)為什麼還要用物件呢?隨著逐步的深入才發現,自己之前的想法是有多可笑,下面給乙個簡單的示例。
function get_max($val_1, $val_2)
$max = get_max(23,34);
echo $max;
echo '
********************==這是華麗的分隔符********************==
';// 類
class test
public function get_max()
}// 例項化類,$test 是由類 test 生成的物件
$test = new test(83, 34);
echo $test->get_max();
可以看到使用物件比單純的方法多了很多**,但是為什麼還要使用物件呢,我們下一節詳細介紹,別走開,往下看
什麼是物件?什麼是類?很多人會把兩個搞混淆,我們可以把類看做乙個工廠,產出的產品就是物件,也就是物件是類的實現。乙個類通常包含屬性、方法。舉個?:有乙個生產麵包的機器(類),生成麵包需要一些材料(屬性),材料包含麵粉、雞蛋、水(不熟悉)。有了材料就可以運作生成麵包了,這時機器會把準備好的材料放一起處理(方法)生成麵包。
關鍵字也是很重要的概念,用來決定宣告的屬性或方法的可見性,包含: public、protected、private。乙個屬性或方法設定為 public 就代表無論在物件內還是物件外都可以被使用,比如麵包機裡如果有乙個攪拌機(僅限如果),如果這個攪拌機設定為public,則這個攪拌機可以被任何品牌的麵包機使用。如果設定為 protected,則只能在同品牌的麵包機中使用(繼承的類)。如果設定為private則只能被自己用。
回到上節問題,對比方法,問什麼使用物件?因為方便,沒錯真的方便。因為物件有以下幾個特點:
封裝:顧名思義,就是把類的屬性和方法封裝起來,設定許可權(public|protected|private),如下:
class test
protected function get_max()
}$test = new test(83, 34);
echo $test->get_max();
封裝的好處是安全、可控。
以上**因為引用了 protected 宣告的方法,因此會報如下的錯誤
fatal error: uncaught error: call to protected method studydesignmode\test::get_max() from context '' in ...
同樣顧名思義,就是繼承分類的方法或屬性,只能繼承 public | protected 關鍵字宣告的方法或屬性。繼承的主要作用是多個不同的類都需要同樣的乙個方法,可以使用繼承。比如多個**頁面(每個頁面都是單獨的類)都需要驗證是否登入,這時候可以定義乙個父類,裡面驗證是否登入,再由需要驗證登入的類繼承,這樣就不需要每個類都寫一次驗證。
class test
protected function getmax()
protected function getmin()
}class testsub extends test
// 簡單功能測試
public function printmaxvalue()
public function printminvalue()
}$test = new testsub(83, 34);
echo '
********************==這是華麗的分隔符 獲取最大值********************==
';echo $test->printmaxvalue();
echo '
********************==這是華麗的分隔符 獲取最小值********************==
';echo $test->printminvalue();
結果:
********************==這是華麗的分隔符 獲取最大值********************==
83********************==這是華麗的分隔符 獲取最小值********************==
34就是讓具有繼承關係的不同類物件重寫類中的方法(兩個類中有相同名稱的方法),典型的應用是抽象類(abstract)和介面類(inte***ce)。如下:
abstract class vehicle
class car extends vehicle
}class bicycle extends vehicle
}$car = new car();
echo $car->run();
echo '
********************==這是華麗的分隔符********************==
';$bicycle = new bicycle();
echo $bicycle->run();
結果:
速度100
********************==這是華麗的分隔符********************==
速度15
PHP 物件基礎知識
還記得,剛開始學習 php 的時候,學到到方法和物件時有乙個很大的疑問,物件與方法相比較那麼麻煩 需要設定屬性,給屬性賦值,例項化類,呼叫 為什麼還要用物件呢?隨著逐步的深入才發現,自己之前的想法是有多可笑,下面給乙個簡單的示例。function get max val 1,val 2 max ge...
PHP 物件導向 基礎知識
物件導向的思想 一種理論 優勢 簡化 量 提高團隊效率 三個元素 五個原則 早期 硬體不標準 所有程式設計面向過程的處理 所有的情況必須寫出來 類 class 實際上是對某種型別的物件定義變數和方法的原型。它表示對現實生活中一類具有共同特徵的事物的抽象,是物件導向程式設計的基礎。1類 2物件 特徵1...
php基礎知識
2.3 語法 就像前面提到的一樣,你可以混合編寫你的php 和html 因此你必須有辦法將兩者區別開來。以下就是你可以採用的幾種方法。你可以選用其中一種你最適應的並且就這樣堅持這種方法!從html中分離 以下是可以使用的方法 注釋 php支援c,c 和unix風格的注釋方式 c,c 風格多行注釋 c...