為了使這個系統更強大,我們不希望所有用戶在我們組具有相同的地位。有些用戶需要管理員,其他主持人,和其他普通用戶只。我們怎麼能考慮到這一點在我們的物體?答案是繼承-的能力一類的繼承方法和屬性從另一個類別。首先,讓我們來看看繼承代碼:
/* Kirupa has admin powers */
$kirupa = new Admin( array( 'name' => 'Kirupa' ) );
echo $kirupa->getName().'<br />';// Kirupa
echo $kirupa->getAdmin(); // Administrator
/* Regular does not have admin powers */
$regular = new User( array( 'name' => 'Regular' ) );
$regular->getAdmin(); // breaks our code
/* Normal User class */
class User {
private $name;
function __construct( $attribs ) {
$this->name= $attribs['name'];
}
function getName() {
return $this->name;
}
}
/* Admin is a User, but with additional functionality */
class Admin extends User {
function getAdmin() {
return 'Administrator';
}
}
正如你可以看到,我們的管理對象繼承了功能的用戶級使用關鍵字擴展。最重要的是,我們的管理是提供了一些額外的功能。在這種情況下,我們的用戶級被稱為超。在PHP中,一類只可繼承父之一。還有更多細微的繼承,但本教程將只支付基本知識。在一個更現實的情況下,我們將更多的功能代碼僅管理員。也許就像:
/* Additional functionality for just Administrators */
class Admin extends User {
function banUser( $id ) {
/* code to ban user */
}
function unbanUser( $id ) {
/* code to unban or activate user account */
}
//...
}
為了時間和重點,這些方法並沒有真正得到編碼。但是,這應該給你一些深入了解如何繼承的作品,為什麼它可以是有益的。
繼續在少數離別的話和方向。
分詞
到現在為止,你應該了解對象,如何創建它們,以及如何進入其屬性和方法。此教程絕非無所不包。事實上,這僅僅是冰山的一角,目的是這樣。為進一步讀,我建議PHP5 :對象,模式,與實踐的馬特Zandstra 。此外,你可以閱讀對象提供的文件上php.net 。
正如你開始了解更多的面向對象和你的PHP代碼變得更加面向對象,你會發現更多的代碼重用,並最終節省時間和能源。預現有的代碼資源,如梨和PHPClasses.org將變得越來越有用。