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 相关文章推荐
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
php笔记之:AOP的应用
Apr 24 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
CodeIgniter实现更改view文件夹路径的方法
Jul 04 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
PHP也能干大事 随机函数
Apr 14 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
php反射类ReflectionClass用法分析
May 12 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
实例讲解PHP页面静态化
Feb 05 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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调整服务器时间的方法
2015/04/03 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
pandas 透视表中文字段排序方法
2018/11/16 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
中层干部岗位职责
2013/12/18 职场文书
2014年元旦活动方案
2014/02/15 职场文书
老干部座谈会主持词
2015/07/03 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
详解Redis主从复制实践
2021/05/19 Redis
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android