• 技术文章 >后端开发 >php教程

    如果让一个对象,可以通过数组模式 和 对象模式 访问其成员属性; 100分

    2016-06-23 13:39:27原创538
    class a{
    public $aaa=1;

    }

    $a=new a();
    echo $a->aaa; //1
    同时可以直接:
    echo $a['aaa']; //1

    在PDO中,可以 $db->fetch(PDO::FETCH_LAZY)来实现,这可以说明,PHP是可以做到上述结果的; 请问具体是如何实现的?
    求原理,谢谢;


    回复讨论(解决方案)

    b = 1;$a['b'] = 2;echo $a->b;echo $a['b'];


    ArrayObject可以继承,但不允许子类有方法,具体的看手册吧我也不清楚...
    说句题外话没恶意,我感觉这玩意没意义...

    要写个方法实现。

    class a{    public $aaa=1;    function fetch($type){        if($type=='assoc'){            $ret = new stdClass();            $ret->aaa = $this->aaa;        }elseif($type=='array'){            $ret = array();            $ret['aaa'] = $this->aaa;        }        return $ret;    }}$d = new a();$obj = $d->fetch('assoc');var_dump($obj);$arr = $d->fetch('array');var_dump($arr);


    object(stdClass)[2]  public 'aaa' => int 1array (size=1)  'aaa' => int 1

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:php curl 作采集时的一些参数设置 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 你知道如何用PHP实现多进程吗• PHP与MySQL连接的方法总结• 工具包分享:PHP实现滑块验证图片• 找到一个编辑器,但是不知道来得到里面的值!求解解决方案• 求解:phpcms模板怎样转码?该怎么解决
    1/1

    PHP中文网