Home  >  Article  >  Backend Development  >  Does php support multiple inheritance?

Does php support multiple inheritance?

(*-*)浩
(*-*)浩Original
2019-09-12 09:18:495539browse

Does php support multiple inheritance?

Question: Does PHP support multiple inheritance?

Answer: No, only single inheritance is supported.

How to implement multiple inheritance?

Answer: It can be implemented using interface or trait. (Recommended learning: PHP programming from entry to proficiency)

interface We will not explain too much here. Its principle is that one class can implement multiple interfaces. The following code can illustrate this.

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!":
    }
}

Let’s focus on the trait implementation of multiple inheritance (in fact, it is not called multiple inheritance, it should be called a function similar to multiple inheritance)

So what is a trait?

Answer: It looks like both a class and an interface, but it is actually neither. Trait can be regarded as a partial implementation of the class and can be mixed into one or more existing PHP classes. It has two functions: indicating What a class can do; provide a modular implementation. Trait is a code reuse technology that provides a flexible code reuse mechanism for PHP's single inheritance restriction.

So how to implement traits? Look at the following code:

//基本类
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();

Note:

Priority: own method>trait method>inherited method

The above is the detailed content of Does php support multiple inheritance?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn