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原理之Session Gc的一个小概率Notice
Apr 12 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
php强制运行广告的方法
Dec 01 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
递归实现php数组转xml的代码分享
May 14 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 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 5.0 Pear安装方法
2006/12/06 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php实现读取超大文件的方法
2014/07/28 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
基于windows下pip安装python模块时报错总结
2018/06/12 Python
Python Grid使用和布局详解
2018/06/30 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python中的插入排序的简单用法
2021/01/19 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
捐资助学感谢信
2015/01/21 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis