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

举报
lxw1844912514 发表于 2022/03/27 02:34:29 2022/03/27
【摘要】 这篇文章主要介绍了PHP7标量类型declare用法,结合实例形式分析了PHP7中标量类型declare的功能、特性与相关使用技巧,需要的朋友可以参考下 本文实例讲述了PHP7标量类型declare用法。分享给大家供大家参考,具体如下: php7为了提高执行效率,在函数方法中增加了标量类型(布尔、浮点、整型、字符)的申明特...

这篇文章主要介绍了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);

运行效果图如下:

//将模式申明为严格模式

<?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);

运行效果图如下:

返回值

<?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中文网其它相关文章!

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100028492

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。