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 04 PHP
php 数学运算验证码实现代码
Oct 11 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
教大家制作简单的php日历
Nov 17 PHP
php微信浏览器分享设置以及回调详解
Aug 01 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 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的计数器程序
2006/10/09 PHP
php中序列化与反序列化详解
2017/02/13 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
Python实现的求解最小公倍数算法示例
2018/05/03 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
《春晓》教学反思
2014/04/20 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
认识实习感想
2015/08/10 职场文书
python中subplot大小的设置步骤
2021/06/28 Python
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
python实现手机推送 代码也就10行左右
2022/04/12 Python
Java 多线程协作作业之信号同步
2022/05/11 Java/Android