为了使这个系统更强大,我们不希望所有用户在我们组具有相同的地位。有些用户需要管理员,其他主持人,和其他普通用户只。我们怎么能考虑到这一点在我们的物体?答案是继承-的能力一类的继承方法和属性从另一个类别。首先,让我们来看看继承代码: /* 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将变得越来越有用。 (责任编辑:admin) |