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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
php实现过滤UBB代码的类
Mar 12 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
PHP目录操作实例总结
Sep 27 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
Laravel框架自定义分页样式操作示例
Jan 26 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 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 日漫
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
php array_merge下进行数组合并的代码
2008/07/22 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
phplot生成图片类用法详解
2015/01/06 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
VC++笔试题
2014/10/13 面试题
标记环介质访问控制协议
2016/03/27 面试题
应届生服装设计自我评价
2013/09/20 职场文书
财务经理岗位职责
2015/01/31 职场文书
2015年保管员工作总结
2015/04/30 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
家访教师心得体会
2016/01/23 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
Python极值整数的边界探讨分析
2021/09/15 Python