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的常用命令
Oct 09 PHP
php中的登陆login
Jan 18 PHP
测试您的 PHP 水平的题目
May 30 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
PHP命名空间(Namespace)的使用详解
May 04 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
Aug 28 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
以文件形式缓存php变量的方法
Jun 26 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
Yii2单元测试用法示例
Nov 12 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
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
Array对象方法参考
2006/10/03 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
python抓取网页中图片并保存到本地
2015/12/01 Python
python中模块查找的原理与方法详解
2017/08/11 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Django实现网页分页功能
2019/10/31 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
工作疏忽检讨书
2014/01/25 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python