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之第一天
Oct 09 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
drupal 代码实现URL重写
May 04 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php中cookie的使用方法
Mar 29 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php强制更新图片缓存的方法
Feb 11 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
js实现的折叠导航示例
2013/11/29 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
js创建对象的方式总结
2015/01/10 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
python查看列的唯一值方法
2018/07/17 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Python List cmp()知识点总结
2019/02/18 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
python sorted函数原理解析及练习
2020/02/10 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
反四风对照检查材料
2014/09/22 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书