PHP7之标量类型-declare
2016-04-22 12:47
691 查看
php7为了提高执行效率,在函数方法中增加了标量类型(布尔、浮点、整型、字符)的申明特性,节省了对数据类型的检测。
php7 仍然支持弱类型检测,即仍然可以使用原来的方式声明形参。
标量声明有两种特性:
强制模式(默认):体现在类型转换上
严格模式
模式声明:declare(strict_types=1);
默认情况值为0,值为1代表为严格校验的模式
可以使用的类型参数:
int-float-bool-string-interfaces-array-callable
作用于形参与返回值类型说明,可选
形参
返回值
由此可见,不管在哪种模式下,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之前的函数申明都适用,并且也支持返回值类型说明。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 简单好用的PHP分页类
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表