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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
一周学会PHP(视频)Http下载
Dec 12 PHP
PHP 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
discuz Passport 通行证 整合笔记
Jun 30 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 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代码
2007/03/08 PHP
PHP session有效期问题
2009/04/26 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
AngularJS基础知识
2014/12/21 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python批量修改交换机密码的示例
2020/09/22 Python
银行财务部实习生的自我鉴定
2013/11/27 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
法制宣传月活动总结
2014/04/29 职场文书
应届生求职信范文
2014/05/26 职场文书
医学生求职自荐书
2014/06/12 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python