这些功能有什么区别?以及为什么我们要为函数参数赋值空值?
function prints($var = '') {
echo $var; }
function prin($var) {
echo $var; }
两者都打印相同的结果。
如果我们为函数参数赋值空值会发生什么?
答案 0 :(得分:3)
第一个函数的第一个参数有一个default value。这意味着在调用该函数时不需要指定参数。
所以你可以调用没有参数的第一个函数:
prints();
使用第一个参数的默认值。但是当调用第二个函数时,需要给出参数:
prin('parameter');
如果您在没有该参数(prin()
)的情况下调用它,您将收到如下警告:
警告:缺少参数1 for prin(),在...中调用
答案 1 :(得分:2)
这些函数将以相同的方式工作将显示相同的效果,因为默认$var = ''
就像你根本不会分配默认值一样。
正如@Gumbo正确指出的那样,这两个函数之间的区别在于,如果不指定prin()
就无法调用$var
,但prints()
可以。{/ p>
如果使用空参数调用该函数,$var
将为空。
答案 2 :(得分:0)
这是默认参数
http://php.net/manual/en/functions.arguments.php
因此,对于您的样本调用prints()将回显一个空字符串,并且调用prin()将引发错误,因为该参数缺失。
答案 3 :(得分:0)
第一个具有变量$ var。
的默认值您可能有兴趣阅读function arguments上的PHP手册页。
答案 4 :(得分:0)
功能
function prints($var = '')
接收默认值(在这种情况下为空值)。
另一个功能没有收到它。 这意味着,您可以调用第一个没有参数的函数prints(),它会将其视为使用空字符串调用它 - 打印('')。
如果没有定义参数,则无法调用第二个函数,因为它没有设置默认值,并且会发出错误。