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 相关文章推荐
基于mysql的bbs设计(二)
Oct 09 PHP
PHP配置心得包含MYSQL5乱码解决
Nov 20 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP实现多图片上传类实例
Jul 26 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
thinkphp实现附件上传功能
May 26 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Laravel框架下的Contracts契约详解
Mar 17 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
php 小乘法表实现代码
2009/07/16 PHP
php array_search() 函数使用
2010/04/13 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python生成n个元素的全组合方法
2018/11/13 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
建材业务员岗位职责
2013/12/08 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
电影红河谷观后感
2015/06/11 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
学生会任命书范本
2015/09/21 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis