Home>Article>Backend Development> An in-depth analysis of PHP traits

An in-depth analysis of PHP traits

王林
王林 forward
2019-08-20 16:59:24 2873browse

Since PHP5.4.0, PHP has implemented a code reuse method calledtrait.

As we all know, PHP has single inheritance, and trait is a code reuse mechanism prepared for single inheritance languages similar to PHP. Traits are designed to reduce the limitations of single-inheritance languages and allow developers to freely reuse methods in independent classes within different hierarchies. The semantics of trait and class composition define a way to reduce complexity and avoid traditional multiple inheritance problems.

traitis similar toclass, but only combines functionality in a fine-grained and consistent way. Cannot be instantiated through the trait itself. It adds a combination of horizontal features to traditional inheritance; that is, there is no need for inheritance between several classes in an application.

Recommended PHP video tutorial://m.sbmmt.com/course/list/29/type/2.html

1. Simple Example

First we give an example to introduce trait, which is similar to class definition, but uses the keyword trait definition. Use use combinations in classes.

t1(),'
'; echo $demo->test();

Output result:

t1

test

2. Multiple trait conflict resolution

If multiple traits are used, but the method names are the same, there will be a conflict. You must manually specify which trait method to use, and use theinsteadofkeyword to achieve this.

t1(),'
'; echo $demo->test();

Output result:

t1

test

In the event of a conflict, you can also use use to define method aliases to resolve the conflict. The example is as follows:

t1(),'
'; echo $demo->new_t1(),'
'; echo $demo->test();

Output result:

t1

#t3

test

3. Change access permissions

You can also use theusekeyword to change the access permissions of the method.

t1(),'
'; echo $demo->t2(),'
'; echo $demo->test();

Output result:

An in-depth analysis of PHP traits

The above knowledge introduces some commonly used features. For details, please refer to the official manual:

https ://www.php.net/manual/zh/language.oop5.traits.php

For more PHP related questions, please visit the PHP Chinese website:https:// m.sbmmt.com/

Thank you!

The above is the detailed content of An in-depth analysis of PHP traits. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete