php约束型,PHP类型约束用法示例
本文实例讲述了PHP类型约束用法。分享给大家供大家参考,具体如下:
在强类型语言中,类型约束是语法上的要求,即定义一个变量的时候,必须指定类型,并以后也只能存储该类型数据;
php是弱类型,其特点是无需为变量指定类型,而且在其后也可以存储任何类型,不过在php的新语法中,在某些特定场合,针对某些特定类型,也可进行语法约束。
特定场合:函数(方法)的形参变量
特定类型:对象类型(类名)、接口类型(接口名)、数组类型(array)、函数类型(callable)
即可以对函数(方法)的参数设定必须使用的类型。只能对对象、接口、数组和函数进行约束。
function f(类名 $p){}
// 要求参数只能使用该类的对象
function f(接口名 $p){}
// 要求该参数只能使用实现该接口的对象
function f(arrary $p){}
// 要求该参数只能使用数组
function f(callable $p)
// 要求该参数只能是一个函数(方法),此时称之为回调函数(方法)
class A{}
function f(A $p){}
$obj = new A();
f($obj);
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
php约束型,PHP类型约束用法示例相关推荐
- 【Flutter】Dart 泛型 ( 泛型类 | 泛型方法 | 特定类型约束的泛型 )
文章目录 一.Dart 泛型类与泛型方法 二.Dart 泛型中的特定类型约束 三.Dart 自带泛型 四.完整代码示例 五. 相关资源 一.Dart 泛型类与泛型方法 泛型作用 : 为 类 , 接口 ...
- 数据库中数据类型和约束(整数类型、字符串、时间类型)
数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束. 数据类型和约束保证了表中数据的准确性和完整性 1. ...
- sql的外键约束和主键约束_SQL主键约束用示例解释
sql的外键约束和主键约束 A primary key is a column or a set of columns that uniquely identifies each row in a t ...
- 论文浅尝 | 知识图谱问答中的层次类型约束主题实体识别
Citation:Qiu, Y., Li, M., Wang, Y., Jia, Y., & Jin, X.(2018). Hierarchical Type Constrained Topi ...
- java反射用法示例_Java包| 类型,用法,示例
java反射用法示例 配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a sho ...
- where 子句用于指定类型约束
where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量. 1.接口约束. 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T ...
- typescript 类型约束(:普通约束、接口约束、type约束)
当类型被约束后,就拥有了约束类型的所有静态方法1.普通类型约束let a:string=xx2.指定类型和属性(1)指定对象let a:{属性1:string,属性2:string}=x 必须是一个对 ...
- 采用matlab编制含电气热的综合能源优化程序,采用yalmip和cplex求解,通过二阶锥模型实现相关约束限制
电气热 综合能源 二阶锥 采用matlab编制含电气热的综合能源优化程序,采用yalmip和cplex求解,通过二阶锥模型实现相关约束限制,综合能源系统考虑39节点电网+6节点气网+热网模型,程序注释 ...
- TypeScript 高级类型及用法
一.高级类型 交叉类型(&) 交叉类型是将多个类型合并为一个类型.这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性. 语法:T & U 其返回类型既要符 ...
最新文章
- 什么是java多线程_什么是java多线程,java多线程的基本原理?
- 如何为linux 桌面文件内存,linux - 桌面Linux发行版中.desktop文件的功能是什么? - 堆栈内存溢出...
- 四旋翼姿态解算——梯度下降法理论推导
- 部署高可用的Lync Server 2013 Part 4 部署高可用的文件共享DFS
- 输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。
- exec su-exec_WildFly Kubernetes exec探针
- cnn生成图像显著图_基于CNN与图像前背景分离的显著目标检测
- npm报错core-js@2.6.12: core-js@<3 is no longer maintained and not recommended for usage due to the num
- sql server 新语法 收藏
- Hibernate重附(Reattach)和合并(Merge)操作的比较
- Diablo III 卡Checking for updates的问题解决
- html小票表格制作,菜单小票模板word
- CSS3实现360度循环旋转
- 上交所几大业务平台简介
- vue中使用$refs获取不到DOM元素
- python外国网站爬虫_Python3网络爬虫(一):利用urllib进行简单的网页抓取
- 赴美生子诚实签的五大谣言!!
- 二叉树的遍历-先序遍历、中序遍历、后序遍历
- IDEA自带接口测试工具(http client)
- 剖析Unreal Engine超真实人类的渲染技术Part 2 - 眼球渲染
热门文章
- HTML rel 属性
- 关于java中Scanner的next和nextLine
- mysql 5.6.23 源码包安装报错_大环境下MySQL5.6源码安装实战一步步教你 CentOS6.5_64bit下编译安装...
- 快搜浏览器_opera、Google、firefox三个浏览器的选择
- 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
- pycharm在401跑程序需要每个py文件加一句
- GROUP BY 和 ORDER BY 同时使用问题
- [转] 使用Docker容器,这些错误千万别犯
- iOS Xcode全面剖析
- 1595 hdu find the longest of the shortest