十 PHP物件導向

2021-09-21 14:28:19 字數 2915 閱讀 5424

一.繼承

總結:

public和protected成員可以被子類繼承,private不能被繼承。

一類最多同時繼承乙個類,不能同時繼承多個類。

在子類中可以通過(父類名::父類的方法名或parent::父類的方法名)方法來訪問父類的方法,前提是:父類的方法能夠被繼承才能訪問(public、protected)。

如果子類和父類擁有相同的方法名,子類的會重寫(覆蓋)父類的方法。

例子:

<?php 

class student

}class samson extends student

}$beststu = new samson('samson');

$beststu->showname();

?>

注意:php並不像其他語言一樣的通過引數列表來實現過載。

例:

<?php 

class math

public funtion addmore($num1, $num2, $num3)

public function __call($name, $arguments) else if ((count($arguments) == 3)

} else

}}$math = new math();

echo $math->getresult(1, 2);

echo $math->getresult(1, 2, 3);

?>

二.抽象類

<?php 

adstract class ainimal

class cat extends ainimal

}$cat = new cat();

$cat-> getname();

?>

三.介面定義:介面就是給出一些沒有實現的方法,封裝到一起,到某個類要使用的時候,再根據具體情況把這些方法寫出來。(介面是更加抽象的抽象類,抽象類裡的方法可以有方法體,介面裡的所有方法都沒有方法體。介面體現了程式設計的多型和高內聚  , 低偶合的設計思想。)

注意:

php的繼承是單繼承,也就是乙個類最多只能有乙個父類,這種單繼承的機制可保證類的純潔性,比c++中的多繼承機制簡潔。    但是不可否認,對子類功能的擴充套件有一定影響.所以我們認為:    (1)實現介面可以看作是對 單繼承的一種補充,還有一點,繼承是層級式的,不太靈活。圖示,這種結構修改某個類就會打破這種繼承的平衡,而介面就沒有這樣的麻煩,因為它只針對實現介面的類才起作用。

四.final

使用情形:

注意:

final  class 類名 

class 類名  // final 方法, 不能被重寫 }

例子:

<?php 

class abc1

}class abc2 extends abc1

}$x=new abc2();

$x->test2();

echo '

';//呼叫父類的final方法

$x->test();

?>

五.const基本用法:

const rate = 3.1415926;

class person

$p = new person ();

echo person::arrar[1];

六.物件遍歷1.語法

foreach($物件 as $key => $val)

注意:在類外部遍歷時,只能遍歷到public 屬性。

2.php內建標準類

不想定義乙個類,可以考慮使用 php內建標準類 stdclass [standard標準]。

3.物件序列化和反序列化

前提:

乙個php指令碼執行完畢,裡面的變數會被釋放掉。

<?php 

class cat

}$cat = new cat();

//物件轉換成字串

$catstr = serialize($cat);

file_put_contends('./cat,txt', $catstr);

?>

<?php 

$cat = file_get_contents('./cat.txt');

//反序列化,字串轉換成物件

$cat= u'nserialize($cat);

file_put_contends('./cat,txt', $cat);

?>

PHP物件導向

1 什麼是物件導向 起初,物件導向 是專指在程式設計中採用封裝 繼承 抽象等設計方法。可是,這個定義顯然不能再適合現在情況。物件導向的思想已經涉及到軟體開發的各個方面。如 物件導向的分析 ooa,object oriented analysis 物件導向的設計 ood,object oriented...

php物件導向

smarty自定義函式 作用 用於在模板被執行時為模板變數賦值 函式名稱 assign 引數 var 宣告變數名稱 字串 value 給該變數賦值 字串 tpl assign title this is title 實現自定義函式有兩種 1.註冊自定義函式 3.版本不支援 tpl register ...

php物件導向

一 寫出php的public protected private三種訪問控制模式的區別 public 公有,任何地方都可以訪問 protected 繼承,只能在本類或子類中訪問,在其他地方不允許訪問 private 私有,只能在本類中訪問,在其他地方不允許訪問 二 請用單態設計模式方法設計類滿足要求...