• 技术文章 >后端开发 >PHP问题

    php支持多继承吗

    (*-*)浩(*-*)浩2019-09-12 09:18:49原创36

    题问php是否支持多继承?

    答案:不可以,只支持单继承。

    如何实现多继承呢?

    答案:可以使用 interface 或 trait 实现 。(推荐学习:PHP编程从入门到精通

    interface这里我们就不做过多的说明了,它的原理就是一个类可以实现多个接口。下面这段代码就能够说明。

    interface test1{
        public function connect();
    }
    interface test2{
        public function contact();
    }
    // 类可以同时实现多个接口
    class myCode implements test1,test2{
        public function connect(){
        echo "test1!";
        }
        public function contact(){
        echo "test2!":
        }
    }

    下面我们重点讨论一下trait实现多继承(其实也不叫多继承,应该叫类似多继承的功能)

    那什么是trait呢?

    答:看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。

    那么怎么实现trait呢?看下面代码:

    //基本类
    class basicTest{
      public function test(){
        echo "hello,world\n";
      }
    }
    //traitOne
    trait traitOne{
      public function test(){
        echo "this is trait one";
      }
      public function testOne(){
        echo "one<br />";
      }
    }
    //traitTwo
    trait traitTwo{
      // public function test(){
        // echo "this is trait two!";
      // }
      public function testTwo(){
        echo "Two<br />";
      }
    }
    //继承基本类,并use trait
    class myCode extends basicTest{
      use traitOne,traitTwo;
      public function test(){
        echo "hehaha!!<br />";
      }
    }
    $obj = new myCode();
    $obj->testTwo();

    注意:

    优先级:自身方法>trait的方法>继承的方法

    以上就是php支持多继承吗的详细内容,更多请关注php中文网其它相关文章!

    phpstudy集成环境下载
    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php
    上一篇:php支持多线程吗 下一篇:php正则表达式有什么用

    相关文章推荐

    • 如何调用别人给的php接口• 如何调试php网站• 核心php代码如何保护• 国内php优秀网站有哪些

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网