几个PHP面向对象小实例
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-08 18:46:52 浏览: 评论:0
抽象类:抽象类不能被实例化,抽象类与其它类一样,允许定义变量及方法,抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。
例1:抽象类
- <?php
- abstract class foo {
- protected $x;
- abstract function display();
- function setX($x) {
- $this->x = $x;
- }
- }
- class foo2 extends foo {
- function display() {
- // Code
- }
- }
- ?>
__call:PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
例2:__call
- <?php
- class foo {
- function __call($name,$arguments) {
- print("Did you call me? I'm $name!");
- }
- } $x = new foo();
- $x->doStuff();
- $x->fancy_stuff();
- ?>
这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。
例3:使用 __call 实现“过载”动作
- <?php
- class Magic {
- function __call($name,$arguments) {
- if($name=='foo') {
- if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
- if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
- }
- } private function foo_for_int($x) {
- print("oh an int!");
- } private function foo_for_string($x) {
- print("oh a string!");
- }
- } $x = new Magic();
- $x->foo(3);
- $x->foo("3");
- ?>
__set 和 __get
这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。
例4: __set 和 __get
- <?php
- class foo {
- function __set($name,$val) {
- print("Hello, you tried to put $val in $name");
- }
- function __get($name) {
- print("Hey you asked for $name");
- }
- }
- $x = new foo();
- $x->bar = 3;
- print($x->winky_winky);
- ?>
Tags: 几个 PHP 面向对象
相关文章
- ·PHP 面向对象 继承(2013-11-14)
- ·PHP面向对象开发——封装关键字(2013-11-14)
- ·php-对象的声名-构造-继承-案例(2013-11-14)
- ·开发大型PHP项目的方法(2013-11-27)
- ·php $$是什么意思(2013-11-28)
- ·关于PHP中的Class的几点个人看法(2013-12-08)
- ·PHP中的面向对象和面向过程(2013-12-08)
- ·PHP5.0中多态性的实现方案浅析(2014-01-14)
- ·PHP中MVC框架之文件入口实例详解(2014-01-16)
- ·PHP autoload实现自动加载类(2014-01-16)
- ·php __call方法使用说明(2014-01-17)
- ·PHP面向对象之旅:static变量与方法(2014-01-17)
- ·php中关于抽象(abstract)类和抽象方法的问题解析(2014-02-10)
- ·PHP Class类与对象学习笔记(2014-02-10)
- ·PHP面向对象开发之魔术函数详解(2014-02-10)
- ·PHP面向对象开发之类的多态详解(2014-02-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)