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将向Java靠拢
Oct 09 PHP
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
php curl的深入解析
Jun 02 PHP
PHP无限分类(树形类)的深入分析
Jun 02 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
Docker搭建自己的PHP开发环境
Feb 24 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中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
js 居中漂浮广告
2010/03/21 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python获取本地计算机名字的方法
2015/04/29 Python
基于python生成器封装的协程类
2019/03/20 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
python3.4中清屏的处理方法
2020/07/06 Python
python下载的库包存放路径
2020/07/27 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
JNI的定义
2012/11/25 面试题
自我评价的写作规则
2014/01/06 职场文书
运动会广播稿400字
2014/01/25 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
大学生心理活动总结
2014/07/04 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
出租房屋协议书
2014/09/14 职场文书
对讲机知识
2022/04/07 无线电