PHP7中标量类型declare的用法详解

PHP7中标量类型declare的用法详解

这篇文章主要介绍了PHP7标量类型declare用法,结合实例形式分析了PHP7中标量类型declare的功能、特性与相关使用技巧,需要的朋友可以参考下

本文实例讲述了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的用法详解

以上就是PHP7中标量类型declare的用法详解的详细内容,更多请关注php中文网其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112753.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pytest(6)重复运行用例pytest-repeat「建议收藏」

    Pytest(6)重复运行用例pytest-repeat「建议收藏」前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月31日
  • discuz二次开发技巧

    discuz二次开发技巧discuz二次开发技巧二次开发大多时候知识设置和处理,如果能够获知模板文件获得的变量数组将大大提高我们的开发效率获取页面已经定义的变量<–{evalprintf_r(get_defined_vars());}–>  获取页面定义的常量<–{evalprint_r(get_defined_constants(true));}–&g…

    2022年5月12日
  • android错误之解析包时出现问题(一)

    类越来越多,有点乱,强迫症,多弄了几个包,整理的井井有条,心里那个舒服,结果问题就来了无法安装了,总是显示“解析包时出现问题”,最烦的就是这种问题,一点技术含量都没有的小问题却要浪费大量时间去找原因。百度了很多,这个算是原因整理的最全的,可是一一对应着找过去,还是没发现问题http://blog.sina.com.cn/s/blog_6040e83d0100slph.html幸好我

    2022年3月10日
  • 关于ie下阻止ActiveX控件

    关于ie下阻止ActiveX控件
    最近,公司的项目上有个部分要用到ActiveX控件。可是在访问的时候,就会弹出”Internetexplorer已经阻止站点用不安全方式使用ActiveX控件”一句。查了好多资料,除了更改ie的安全设置,没有其他方法。
    更改ie安全设置,需要更改的几个地方:
    首先,Internet选项–>安全
    1.选中Internet –“自定义级别”– “ActiveX控件和插件 “–“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”(启用

    2022年5月14日
  • Android应用程序绑定服务(bindService)的过程源代码分析

    Android应用程序绑定服务(bindService)的过程源代码分析Android应用程序组件Service与Activity一样,既可以在新的进程中启动,也可以在应用程序进程内部启动;前面我们已经分析了在新的进程中启动Service的过程,本文将要介绍在应用程序内部绑定Service的过程,这是一种在应用程序进程内部启动Service的方法。     在前面一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划中,我们就曾经提到,在A

    2022年9月18日
  • armv7和arm64区别(armv7s)

    目前ios的指令集有以下几种:armv6iPhoneiPhone2iPhone3G第一代和第二代iPodToucharmv7iPhone4iPhone4Sarmv7siPhone5iPhone5Carm64iPhone5SiPhone6iPhone6+================================================…

    2022年4月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号