各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > PHP

PHP类型约束的详细介绍(附代码)

管理员 2023-09-05
PHP
145

PHP类型约束的详细介绍(附代码)

内容导读

收集整理的这篇技术教程文章主要介绍了PHP类型约束的详细介绍(附代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2481字,纯文字阅读大概需要4分钟

内容图文

本篇文章给大家带来的内容是关于PHP类型约束的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

导语:所谓类型约束,即定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。PHP 虽然是弱类型语言,但是在 PHP 5 已经支持类型约束,包括对象、接口、数组,在 PHP 7 之后支持标量类型约束,下面简单写几个示例。

标量类型、数组

在参数中指明类型,如果不一致,会抛出一个可捕获的致命错误

<?php/** * 数组类型约束 * @param array $arr */function printArray(array $arr){    echo implode(',', $arr);}printArray(array(1, 2, 3));// 1,2,3printArray('1');// Fatal error: Uncaught TypeError: Argument 1 passed to printArray() must be of the type array, string given, called in D:WWWtest.php on line 13 and defined in D:WWWtest.php:7 Stack trace: #0 D:WWWtest.php(13): printArray('1') #1 {main} thrown in D:WWWtest.php on line 7

如上所示,标量类型也是如此

<?php/** * 标量类型约束 * @param string $name * @param int $age * @param float $height * @param bool $isBoy */function sayInfo(string $name, int $age, float $height, bool $isBoy){    echo '姓名:' . $name . ',年龄:' . $age . ',身高:' . $height . ',是否为男孩:' . ($isBoy ? '是' : '否');}sayInfo('tom', 12, 134.5, true);// 姓名:tom,年龄:12,身高:134.5,是否为男孩:是

对象、接口

类型约束也可以指定为对象或者接口。首先定义一个 Human 接口,BoyGirl 两个类分别实现接口

<?php/** * 接口 * Interface Human */interface Human{    public function say();    public function run();}/** * 实现 Human 接口 * Class Boy */class Boy implements Human{    public function say()    {        echo 'a boy say';    }    public function run()    {        echo 'a boy run';    }}/** * 实现 Human 接口 * Class Girl */class Girl implements Human{    public function say()    {        echo 'a girl say';    }    public function run()    {        echo 'a girl run';    }}

接下来新建一个类来测试

<?phpinclude './human.php';class Action{    /**     * Boy 对象类型约束     * @param Boy $boy     */    public function boySay(Boy $boy)    {        $boy->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 sayecho '<br />';$obj->girlSay(new Girl());// a girl sayecho '<br />';$obj->humanRun(new Boy());// a boy runecho '<br />';$obj->humanRun(new Girl());// a girl run

当类型约束为具体对象 Boy 或者 Girl 时,只能传入要求的对象。当类型约束为接口 Human 时,可以传入实现接口的类 BoyGirl

【相关推荐:PHP视频教程】

以上就是PHP类型约束的详细介绍(附代码)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP类型约束的详细介绍(附代码)全部内容,希望文章能够帮你解决PHP类型约束的详细介绍(附代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, PHP, xunruicms, jizhicms, dedecms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

扫码关注

qrcode

QQ交谈

回顶部