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语法(2)
Oct 09 PHP
php生成WAP页面
Oct 09 PHP
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
php 操作excel文件的方法小结
Dec 31 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 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
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
jquery validate使用攻略 第四步
2010/07/01 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python整数对象实现原理详解
2019/07/01 Python
python生成器推导式用法简单示例
2019/10/08 Python
Python更换pip源方法过程解析
2020/05/19 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
总经理办公室主任岗位职责
2013/11/12 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
领导欢迎词范文
2015/01/26 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers