PHP7标量类型declare用法实例分析


Posted in PHP onSeptember 26, 2016

本文实例讲述了PHP7标量类型declare用法。分享给大家供大家参考,具体如下:

php7为了提高执行效率,在函数方法中增加了标量类型(布尔、浮点、整型、字符)的申明特性,节省了对数据类型的检测。

php7 仍然支持弱类型检测,即仍然可以使用原来的方式声明形参。

标量声明有两种特性:

强制模式(默认):体现在类型转换上

严格模式

模式声明:declare(strict_types=1);

默认情况值为0,值为1代表为严格校验的模式

可以使用的类型参数:

int-float-bool-string-interfaces-array-callable

作用于形参与返回值类型说明,可选

形参

//强制模式
<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
// php7之前申明方式
function type_weak(... $int){
  return array_sum($int);
}
// 强制模式 php7声明方式
//强制模式下会将所有实参转换为整型
function sum(int ... $ints)
{
  //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
  print_r($ints);
  echo "<br>";
  return array_sum($ints);
}
echo type_weak(2, '3',0.11);
echo "<hr>";
echo sum(2, '3',0.11);

运行效果图如下:

PHP7标量类型declare用法实例分析

//将模式申明为严格模式
<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
 //declare 必须在文件首部
declare(strict_types=1);
// 强制模式(默认)
function type_weak(... $int){
  return array_sum($int);
}
// 强制模式
function sum(int ... $ints)
{
  //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
  print_r($ints);
  echo "<br>";
  return array_sum($ints);
}
echo type_weak(2, '3',0.11);
echo "<hr>";
//实参存在字符串与浮点型,报错
echo sum(2, '3',0.11);

运行效果图如下:

PHP7标量类型declare用法实例分析

返回值

<?php
/**
 * Created by PhpStorm.
 * User: bee
 * Date: 2016/4/22
 * Time: 10:17
 */
declare(strict_types=0);
// 强制模式(默认)
function type_weak(... $int) :int{
  return array_sum($int);
}
// 强制模式
function sum(int ... $ints) :int
{
  //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
  print_r($ints);
  echo "<br>";
  //严格模式下报错
  return array_sum($ints)+0.6;
}
echo type_weak(2, '3',0.11);
echo "<hr>";
echo sum(2, '3',0.11);

运行效果图如下:

PHP7标量类型declare用法实例分析

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

PHP 相关文章推荐
php开发工具之vs2005图解
Jan 12 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
php中定时计划任务的实现原理
Jan 08 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
php实现简单的语法高亮函数实例分析
Apr 27 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
PHP7新增运算符用法实例分析
Sep 26 #PHP
PHP7匿名类用法分析
Sep 26 #PHP
PHP7常量数组用法分析
Sep 26 #PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 #PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 #PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 #PHP
php版交通银行网银支付接口开发入门教程
Sep 26 #PHP
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
js更优雅的兼容
2010/08/12 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
python 实现逻辑回归
2020/12/30 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
QA工程师岗位职责
2013/11/20 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
教学实验楼管理制度
2014/02/01 职场文书
自我推荐信怎么写
2015/03/24 职场文书
安全生产学习心得体会
2016/01/18 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js