php面向对象运用场景(PHP面向对象类型约束用法分析)
类别:编程学习 浏览量:1828
时间:2022-01-27 01:05:24 php面向对象运用场景
PHP面向对象类型约束用法分析本文实例讲述了PHP面向对象类型约束。分享给大家供大家参考,具体如下:
什么是类型约束
就是要求某个变量只能使用(接受,存储)某种指定的数据类型;php属于”弱类型语言“,通常不支持类型约束;相应的,强类型语言,类型约束却是其“基本特征”。
php中,只支持局部的部分类型约束
php中,只支持在函数(或方法)的形参上,设定类型的约束目标,形式如下:
|
function 方法名( [要求使用的类型] $p1 , [要求使用的类型] $p2 , ......){ //.... } |
说明:
- 定义一个函数(方法)时,一个形参,可以使用类型约束,也可以不使用;
- 如果使用了类型约束,则对应的该实参数据,就必须是要求的那种类型;
- 能够使用的类型约束,只有以下几种情况可用:
① 数组: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程序设计有所帮助。
原文链接:https://blog.csdn.net/Yeoman92/article/details/52848677
您可能感兴趣
- php中把字符串分开的函数(PHP字符串中抽取子串操作实例分析)
- php上传图片视频代码(详解PHP素材图片上传、下载功能)
- php的字符串表达方法(php中字符串和整数比较的操作方法)
- php命名空间真的存在吗(PHP中命名空间的使用例子)
- php上传大文件教程(PHP实现带进度条的Ajax文件上传功能示例)
- php怎么实现动态配置(php实现映射操作实例详解)
- php对接微信付款(PHP微信支付功能示例)
- iis6双php版本的设置(云主机IIS7.5支持PHP5.3以上版本和MYSQL)
- dedecms标签调用原理(DEDECMS安全设置 执行php脚本限制设置方法apache+nginx)
- PHP如何安装(PHP使用 Pear 进行安装和卸载包的方法详解)
- php消息队列redis(redis+php实现微博二发布与关注功能详解)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- php字符串教程学习(php学习笔记之字符串常见操作总结)
- php的数组是如何实现的(PHP中遍历数组的三种常用方法实例分析)
- php 实例代码解析(PHP反射学习入门示例)
- php回收机制(PHP session垃圾回收机制实例分析)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
- 汉族(汉族的祖先是谁)
- 中国有几个名族(中国有几个民族没列入56个民族)
- 数学语文题目(语文的数学题)
- 香蕉(香蕉三种人不宜吃)
- 没钱可以快乐吗(没钱也能快乐吗)
热门推荐
- vscode报错提示框(关于在vscode使用webpack指令显示"因为在此系统中禁止运行脚本"问题)
- dataframe模糊匹配合并数据(对DataFrame数据中的重复行,利用groupby累加合并的方法详解)
- python中创建类的方法(Python中如何导入类示例详解)
- linux安装sqlserver 2008 r2(Ubuntu 下安装SQL Server教程)
- python读取txt文件每一行数据(python读取txt文件并取其某一列数据的示例)
- 如何减少用户操作网站时的出错率
- iframe解决跨域问题(跨域修改iframe页面内容详解)
- dedecms变量的使用(dedecms实现游客可以提问、回答及查看的方法)
- nginx反向代理端口号(nginx 代理80端口转443端口的实现)
- python在mysql创建数据库(python3对接mysql数据库实例详解)