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超级全局变量
Jan 26 PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
php中字符串和正则表达式详解
Oct 23 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP abstract 抽象类定义与用法示例
May 29 PHP
PHP微信网页授权的配置文件操作分析
May 29 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回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
文本框回车提交与禁止提交示例
2013/09/27 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
python字典快速保存于读取的方法
2018/03/23 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
NumPy 数组使用大全
2019/04/25 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
中专自我鉴定范文
2013/10/16 职场文书
高中的自我鉴定
2013/12/16 职场文书
中学门卫岗位职责
2013/12/26 职场文书
施工资料员岗位职责
2014/01/06 职场文书
简单的辞职信范文
2014/01/18 职场文书
七年级政治教学反思
2014/02/03 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书