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中Date()时间日期函数的使用方法小结
Apr 20 PHP
关于js与php互相传值的介绍
Jun 25 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
详解PHP中的PDO类
Jul 06 PHP
smarty高级特性之对象的使用方法
Dec 25 PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 PHP
PHP自定义多进制的方法
Nov 03 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 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
图书管理程序(一)
2006/10/09 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python负载均衡的简单实现方法
2018/02/04 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Python 实现数组相减示例
2019/12/27 Python
对python中return与yield的区别详解
2020/03/12 Python
golang/python实现归并排序实例代码
2020/08/30 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
英国电子专家:maplin
2019/09/04 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
精彩的广告词
2014/03/19 职场文书
员工辞职信怎么写
2015/02/27 职场文书
债务追讨律师函
2015/06/24 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技