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使用yield对性能提升的测试实例分析)
- php怎么设置统计代码(php简单计算权重的方法示例适合抽奖类应用)
- php开发模式有哪些(PHP设计模式之简单工厂和工厂模式实例分析)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- phpmysql完全学习手册教程(Windows下搭建PHP开发环境Apache+PHP+MySQL)
- phpstudy修改为什么进不去(phpstudy2018升级后站点及phpmyadmin打开404解决方案)
- php函数使用教程讲解(php函数式编程简单示例)
- php连接oracle(PHP远程连接oracle数据库操作实现方法图文详解)
- php获取网页内容的几种方法(PHP实现的文件浏览器功能简单示例)
- php 支付系统(php 实现银联商务H5支付的示例代码)
- php 常见的三种缓存(PHP进阶学习之垃圾回收机制详解)
- php 实例代码解析(PHP反射学习入门示例)
- php实例说明(PHP中Static静态关键字功能与用法实例分析)
- php网页生成程序(php生成静态页面并实现预览功能)
- cpu怎么访问php(服务器大量php-cgi.exe进程导致CPU占用100%的解决方法)
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
热门推荐
- 云服务器弹性体现在哪些方面(云服务器的性能表现在哪些方面?)
- 跨站请求伪造的几个解决方法
- windows server 2008r2怎么安装(Windows Server2008 R2 MVC 环境安装配置教程)
- html5标签怎么做(html5用video标签流式加载的实现)
- springboot内置tomcat启动过程(Tomcat启动springboot项目war包报错:启动子级时出错的问题)
- kettle替换sql语句(sql server定时作业调用Kettle job出错的快速解决方法)
- 云服务器调试(云服务器怎么设置伪静态?)
- 百度网和阿里云哪个好用(百度云服务器bcc有什么优势?)
- laravel数据迁移(Laravel框架实现的上传图片到七牛功能详解)
- label标签的作用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9