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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
PHP+DBM的同学录程序(5)
Oct 09 PHP
使用PHP的日期与时间函数技巧
Apr 24 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
PHP中类的自动加载的方法
Mar 17 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 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中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
python async with和async for的使用
2019/06/20 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
业务经理的岗位职责
2013/11/16 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
世界气象日活动总结
2015/02/27 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2016春季运动会前导词
2015/11/25 职场文书
用python自动生成日历
2021/04/24 Python
python b站视频下载的五种版本
2021/05/27 Python
Python的这些库,你知道多少?
2021/06/09 Python
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers