Home>Article>Backend Development> Detailed introduction to PHP type constraints (with code)

Detailed introduction to PHP type constraints (with code)

不言
不言 forward
2019-04-02 11:41:34 2366browse

This article brings you a detailed introduction to PHP type constraints (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Introduction: The so-called type constraint means that when defining a variable, its type must be specified, and the variable can only store data of this type in the future. Although PHP is a weakly typed language, it already supports type constraints in PHP 5, including objects, interfaces, and arrays. It supports scalar type constraints after PHP 7. Here are a few examples.

Scalar type, array

Specify the type in the parameter. If it is inconsistent, a catchable fatal error will be thrown


      

As shown above , the same is true for scalar types


      

Objects, interfaces

Type constraints can also be specified as objects or interfaces. First define aHumaninterface, andBoyandGirltwo classes implement the interface respectively


      

Next, create a new class to test

say(); } /** * Girl 对象类型约束 * @param Girl $girl */ public function girlSay(Girl $girl) { $girl->say(); } /** * Human 接口类型约束 * @param Human $obj */ public function humanRun(Human $obj) { $obj->run(); } } $obj = new Action(); $obj->boySay(new Boy());// a boy say echo '
'; $obj->girlSay(new Girl());// a girl say echo '
'; $obj->humanRun(new Boy());// a boy run echo '
'; $obj->humanRun(new Girl());// a girl run

When the type constraint is a specific objectBoyorGirl, only the required object can be passed in. When the type constraint is interfaceHuman, you can pass in the classBoyorGirlthat implements the interface.

【Related recommendations:PHP video tutorial

The above is the detailed content of Detailed introduction to PHP type constraints (with code). For more information, please follow other related articles on the PHP Chinese website!

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