PHP does not have multiple inheritance features. Even if it is a programming language that supports multiple inheritance, we rarely use this feature. In most people's opinion, multiple inheritance is not a good design method.
But what should we do if we use multiple inheritance in development?
The following introduces the problem of using traits to implement multiple inheritance in PHP. (Recommended learning: PHP video tutorial)
Since PHP5.4, PHP has implemented the trait syntax for code reuse.
Trait is a code reuse mechanism prepared for PHP's single inheritance language. In order to reduce the limitations of single inheritance, methods are developed to reuse methods at different structural levels. The semantics of Trait and Class combination define a way to reduce complexity and avoid typical problems related to traditional multiple inheritance and Mixin classes. .
需要注意的是,从基类继承的成员会被 trait 插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。
Let’s take an example first:
trait TestOne{ public function test() { echo "This is trait one <br/>"; } } trait TestTwo{ public function test() { echo "This is trait two <br/>"; } public function testTwoDemo() { echo "This is trait two_1"; } } class BasicTest{ public function test(){ echo "hello world\n"; } } class MyCode extends BasicTest{ //如果单纯的直接引入,两个类中出现相同的方法php会报出错 //Trait method test has not been applied, because there are collisions with other trait //methods on MyCode //use TestOne,TestTwo; //怎么处理上面所出现的错误呢,我们只需使用insteadof关键字来解决方法的冲突 use TestOne,TestTwo{ TestTwo::test insteadof TestOne; } } $test = new MyCode(); $test->test(); $test->testTwoDemo();
Run result:
This is trait two This is trait two_1
The above is the detailed content of Can php inherit from multiple parent classes?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Zend Studio 13.0.1
Powerful PHP integrated development environment

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
