Home > Article > Backend Development > Is PHP single inheritance or multiple inheritance?
PHP does not support multiple inheritance, so how to implement multiple inheritance?
Can be implemented using interface or trait
Interface We won’t explain too much here. The 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 a class, which can be mixed into one or more existing PHP classes. Its functions are twofold: indicating what the class can do; and providing 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 trait? 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 (this is how it works.)
If we open the comments in the above code, an error will be reported because the methods in the two traits have the same name.
Recommended tutorial: PHP video tutorial
The above is the detailed content of Is PHP single inheritance or multiple inheritance?. For more information, please follow other related articles on the PHP Chinese website!