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

    两种PHP实现类作为参数传递的方法

    零到壹度零到壹度2018-04-11 10:44:00原创2042

    在做PHP项目的时候,经常需要动态的使用某个类的同一方法名的方法。例如class A有get方法,class B也有get方法。此时只有两个类非常好解决,用一个if就完美解决了,拿如果有N个这样的类呢?那就需要我后面将的方法来实现啦!

    解决办法

    其实我也是在看ThinkPHP框架时才发现这个技巧的,那就是PHP是可以通过类的名字或他的空间名来代替类的,这样的话就可以直接传递类名或类的空间命名,来实现类作为参数传递这样的功能了。

    通过类名代替类

    <?php class A{
        public function test(){
            $class = 'B'; 
            $b = (new $class); //必须要将类名放在变量里面,如果直接new 'B'会出错。
            $b->test();
        }
    }class B{
        public function test(){
            var_dump('class B');
        }
    }$a = new A();$a->test();//最后将输出class B

    通过空间命名名代替类

    //FileA<?php require  'testB.php';class A{
        public function test(){
            $class = 'testB\B'; 
            $b = (new $class);//必须要将命名空间放在变量里面,如果直接new 'testB\B'会出错。
            $b->test();
        }
    }$a = new A();$a->test();
    //FileB<?phpnamespace testB; //空间命名class B{
        public function test(){
            var_dump('testB\B');
        }   
    }

    最后输出:testB\

    以上就是两种PHP实现类作为参数传递的方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 传递 参数,类
    上一篇:怎样使thinkphp5加载静态资源路径与常量 下一篇:25种PHP框架 - CSDN博客
    千万级数据并发解决方案

    相关文章推荐

    • 用PHP实现自己的sha-256哈希算法!• DEDECMS分页标签的有关问题,用求大神• php上传文件有关问题• php字符串转化成数组解决思路• 页面 和数据库都是utf8 如何还有乱码
    1/1

    PHP中文网