今天升级升级 laravel 框架后报出?语法错误,找到代码一看函数的传递参数 前面有一个 ‘?’,看不懂了知识盲区,太久没有更新知识库了
可选参数 VS 可空参数
可选参数
可选参数可以理解为函数运行时可以传也可以不传的参数,如:
function getName($name =''){
return $name;
}
getName(); // 返回 ''
getName('Hello'); // 返回 Hello
这个经常使用到就不必多说了。
可空参数
可空参数怎么理解,和可空参数有什么区别呢?代码如:
function nullableParameter(?string $name)
{
return $name;
}
echo nullableParameter(null); // 不会返回任何东西
echo nullableParameter('Nauman'); // Nauman
echo nullableParameter(); // 致命错误
function nullableParameterWithReturnType(?string $name) : string
{
return $name;
}
echo nullableParameter(null); // 致命错误,必须返回 string 类型
echo nullableParameter('Nauman'); // Nauman
function nullableReturnType(string $name) : ?string
{
return $name;
}
echo nullableParameter(null); // 致命错误,$name 应该是 string 类型
echo nullableParameter('Nauman'); // Nauman
显然,可空参数不是可选参数,你必须传递一个值或者是 null
。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于