首页 > php教程 > php手册 > 正文

PHP5试用(二)

php中文网
发布: 2016-05-22 17:20:56
原创
1797人浏览过

抽象类

抽象类不能被实例化。

抽象类与其它类一样,允许定义变量及方法。

抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。

例六:抽象类

立即学习PHP免费学习笔记(深入)”;

<?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 方法将会被自动调用。

例七:__call

青柚面试
青柚面试

简单好用的日语面试辅助工具

青柚面试 57
查看详情 青柚面试
<?php
class foo {
    function __call($name, $arguments) {
        print ("Did you call me? I'm $name!");
    }
}
$x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
登录后复制

这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。

例八:使用 __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 方法可以用来捕获一个对象中不存在的变量和方法。

例九: __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);
登录后复制


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号