php 函数声明2,php 函数返回值声明
php7 支持函数返回值声明。就像下面这样:
function sum($a, $b): float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?>
结果是:
float(3)
在 default weak 模式下,会自动转换返回的类型。在 strong 模式下,如果类型不正确,会抛出类型错误异常。
如果是重写父函数,那么该函数的返回值类型声明也要跟父函数一样。如果父函数没有声明返回值类型,那么子函数是可以声明的。
php7.1.0 开始,可以在冒号以前加上问号(?:) 来表示可以返回 NULL 或特定的类型
比如像这样
function sum($a, $b): ?float {
return $a + $b;
}
// Note that a float will be returned.
var_dump(sum(1, 2));
?>
这表示可以返回 NULL 或者 float
问号不仅可以放在返回值之前,还可以放在函数参数前,表示可以为 NULL
比如这样:
ini_set('display_errors', 1);
function test(?string $name)
{
var_dump($name);
}
test('elePHPant');
test(null);
test();
?>
结果是:
string(9) "elePHPant"
null
Uncaught Error: Too few arguments to function test(), 0 passed in...
这并不影响默认值的用法
ini_set('display_errors', 1);
function test(?string $name = 'dudu')
{
var_dump($name);
}
test('elePHPant');
test(null);
test();
?>
结果是:
string(9) "elePHPant"
null
string(4) "dudu"
参考文档
php 函数声明2,php 函数返回值声明相关推荐
- 【函数的定义、调用(嵌套调用、递归调用)、声明、函数的分类(有无返回值、有无参数)、变量(自动变量与静态变量、局部变量与全局变量、只读变量)】(学习笔记7--函数)
第一篇博文,打卡新星计划第三季3.4~4.4,希望能有质的飞跃,顶峰相见 一.自定义函数 1.函数的定义 函数在使用前也需要定义,定义的格式如下: 数据类型 函数名([数据类型 参数1],[数据类型 ...
- Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法
函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...
- python函数定义参数类型和返回值类型
python中我们也可以定义函数的参数类型和返回值类型,如下代码 #函数参数和返回值的类型声明,python函数类型的声明,更加有意义,更加实用一些 def add(a,b):''':param a: ...
- API函数MessageBox的参数与返回值
Win32汇编函数的参数,参数类型,返回值都是一个dword类型(4字节) 返回值永远放在EAX中,如超过4个字节则返回一个数据的指针(指向返回值存放的缓冲区地址) .data titleS db ' ...
- 如何引用传递参数从一个函数中得到多个返回值
2019独角兽企业重金招聘Python工程师标准>>> 通过"引用"传递参数的方法从一个函数中得到多个返回值.就像三元运算符一样,大部分受过正式编程训练的程序员都 ...
- 实现 fizzBuzz 函数,参数 Thum 与返回值的关系如下: 1、如果 Thum 能同时被 3 和 5 整除,返回字符串 fizzbuzz 2、如果 Thum 能被 3 整除,返回字符串 fiz
题目描述 实现 fizzBuzz 函数,参数 Thum 与返回值的关系如下: 1.如果 Thum 能同时被 3 和 5 整除,返回字符串 fizzbuzz 2.如果 Thum 能被 3 整除,返回字符 ...
- 函数中有多个return?C语言中,一个函数可以有几个返回值?
在移植wifi的代码时,遇到了一些与下面类似的函数,这些函数中有不只一个return,这可是个新鲜的玩意儿: int func (int b) {int a=5;if (a>b)return a ...
- 以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值。
以下是一个使用 VBA 的例子,演示了 ByVal 和 ByRef 的区别,以及如何在函数中传递参数和返回值: Sub Example()Dim x As Integer, y As Integerx ...
- python 定义函数时,参数和返回值的数据类型注释
""" a:int 表示添加a的数据类型注释,但事实上就算传入a的值不是int类型也不会报错,可以正常运行; 但编译器会警告. b:int = 5 表示添加b的数据类型注 ...
最新文章
- 在ATS 5.3.0上测试网页加速插件ats_pagespeed
- 用户态线程在AI中的应用
- 使用FluentValidation来进行数据有效性验证
- git 更新远程分支列表(亲测)
- python列表反向取值_Python列表的反向遍历,python,逆序
- 《软件建模与设计: UML、用例、模式和软件体系结构》一一3.1 软件生存周期模型...
- Linux socket
- jQuery最新1.4 版本的十五个新特性
- 关于趋势科技防毒墙网络版的卸载
- 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
- 你真的了解性能压测中的SLA吗?
- Java随机获取男主角 女主角名字
- 投稿动态无法删除的情况下,如何批量删除B站动态?
- 易基因|RNA m7G甲基化测序(m7G-MeRIP-seq)
- 卷积神经网络—全连接层
- 现在智能机怎么玩Java游戏,教你如何用安卓机玩JAVA老游戏
- Portable Chrome 32/64
- 【代码阅读】WarpGAN: Automatic Caricature Generation
- KD树+BBF+KNN使用C#实现(3)
- 软考软件设计师下午真题-面向对象的程序设计与实现-生成器设计模式(2018年上半年试题六))Java代码讲解
热门文章
- TS01 为什么要使用TypeScript
- Rust Rocket框架跨域设置
- lexaiduer psd_简约自然风清新零食早餐麦片食品燕麦详情_psd素材免费下载_ 790*6368像素(编号:24565017)...
- Android 使用ProgressBar 实现一个水平方向走动的进度条
- Unity 3D作业八:粒子系统
- sona:Spark on Angel任务启动流程分析
- 软件测试用例等价类边界值,做软件测试,测的是一个论坛,请问怎么设计论坛的测试用例呢?要求用到等价类 边界值 决策表中至少两个...
- scp命令默认传输速度多大_linux中scp命令使用技巧详解(传输速度)linux操作系统 -电脑资料...
- 开源的lua-studio使用VS2019编译过程
- 【技术写作】怎样通过技术写作实现财富自由?