• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP面向对象类型约束用法分析

    本文实例讲述了PHP面向对象类型约束。分享给大家供大家参考,具体如下:

    什么是类型约束

    就是要求某个变量只能使用(接受,存储)某种指定的数据类型;php属于”弱类型语言“,通常不支持类型约束;相应的,强类型语言,类型约束却是其“基本特征”。

    php中,只支持局部的部分类型约束

    php中,只支持在函数(或方法)的形参上,设定类型的约束目标,形式如下:

    function 方法名( [要求使用的类型] $p1, [要求使用的类型] $p2, ......){
      //....
    }
    
    

    说明:

    1. 定义一个函数(方法)时,一个形参,可以使用类型约束,也可以不使用;
    2. 如果使用了类型约束,则对应的该实参数据,就必须是要求的那种类型;
    3. 能够使用的类型约束,只有以下几种情况可用:

    ① 数组:array

    ② 对象:使用类的名称,传递过来的实参,必须是该类的实例

    ③ 接口:使用接口的名称,传递过来的实参,必须是实现了该接口的类的实例

    ?php
    //演示类型约束
    interface USB{} //接口
    class A{}  //类
    class B implements USB{}  //实现了USB接口的类
    function f1($p1, array $p2, A $p3, USB $P4){
      echo "br />没有约束的p1:" . $p1;
      echo "br />要求是数组的p2:" ;
        print_r($p2);
      echo "br />要求是类A的对象:";
        var_dump($p3);
      echo "br />要求是实现实现了USB接口的对象:";
        var_dump($P4);
    }
    $obj1 = new A();
    $obj2 = new B();
    $arr = array();
    //演示各种形式的函数调用
    //f1(1.2, 1, $obj1, $obj2);//报错,第二个参数不是数组类型,Argument 2 passed to f1() must be an array, integer give
    //f1(1, $arr, $obj1, $obj1);//报错,第四个参数,Argument 4 passed to f1() must implement interface USB, instance of A given
    f1(1.2, $arr, $obj1, $obj2);//没问题
    ?>
    
    

    运行结果:

    没有约束的p1:1.2
    要求是数组的p2:Array ( )
    要求是类A的对象:
    object(A)[1]
    要求是实现实现了USB接口的对象:
    object(B)[2]

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP标准类(stdclass)用法示例
    • 解析PHP将对象转换成数组的方法(兼容多维数组类型)
    • 常用的php对象类型判断
    • php面向对象全攻略 (九)访问类型
    • PHP中数据类型转换的三种方式
    • 浅析php数据类型转换
    • 浅谈PHP强制类型转换,慎用!
    • PHP 变量类型的强制转换
    • PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
    上一篇:PHP面向对象程序设计__tostring()和__invoke()用法分析
    下一篇:PHP下用Swoole实现Actor并发模型的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP面向对象类型约束用法分析 PHP,面向,对象,类型,约束,