background image

php 引用与继承教程

为了使这个系统更强大,我们不希望所有用户在我们组具有相同的地位。有些用户需

要管理员,其他主持人,和其他普通用户只。我们怎么能考虑到这一点在我们的物体?答
案是继承-的能力一类的继承方法和属性从另一个类别。首先,让我们来看看继承代码:

/* 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 */
}
//...