资讯专栏INFORMATION COLUMN

PHP 类型约束

funnyZhang / 1393人阅读

摘要:导语所谓类型约束,即定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。当类型约束为接口时,可以传入实现接口的类或。参考资料类型约束标量类型声明。

导语

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

标量类型、数组

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


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


对象、接口

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


接下来新建一个类来测试

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

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


参考资料:PHP 5 类型约束、PHP 7 标量类型声明。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31145.html

相关文章

  • 谈谈 PHP 中的类型约束

    摘要:但是在以来,在面向对象中,为方法带来了类型约束,然而这些都非常的鸡肋,从文档上可以看到。支持对象接口支持数组支持匿名函数类型约束不能用于标量类型如或。它的运作方式,是在中设置一个标志位,让函数调用和返回类型检查符合类型约束。 起点 众所周知,PHP 是弱类型语言,与其他强类型语言项目,在这方面会有很多的坑,但是已经发展到 PHP 7 之后,PHP 也对类型约束有了所指,并且在许多流行框...

    libxd 评论0 收藏0
  • 浅谈PHP类型约束

    摘要:但是在的高版本语法中起,在某些特定场合,针对某些特定类型,也是可以进行语法约束的。注意在以前,类型约束不能用于标量类型如或。这意味着严格声明标量是基于文件可配的。这个指令不仅影响参数的类型声明,也影响到函数的返回值声明。 前言 众所周知,在 强类型 语言中,类型约束 是语法上的要求,即:定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。 而我们的PHP是弱类型语言...

    forsigner 评论0 收藏0
  • Laravel 依赖注入源码解析

    在 Laravel 的控制器的构造方法或者成员方法,都可以通过类型约束的方式使用依赖注入,如: public function store(Request $request) { //TODO } 这里 $request 参数就使用了类型约束,Request 是类型约束的类型,它是一个类:IlluminateHttpRequest. 本文研究 Laravel 的依赖注入原理,为什么这样定义...

    Donne 评论0 收藏0
  • 数据库学习线路图

    摘要:数据库学习线路图语法教程教程简介语法选择查询子句与,或,非按关键字排序在表中插入空值更新删除运算符通配符运算符运算符通用数据类型语句快速参考连接内部连接左连接右连接完整外部连接自连接运算符语句语句撤销索引表以及数据库语句语句语句字 数据库学习线路图 SQL 语法教程 SQL 教程 SQL 简介 SQL 语法 SQL Select选择 SQL SELECT DISTINCT S...

    tinna 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<