这两个功能有什么区别?

时间:2010-02-22 14:23:30

标签: php function

这些功能有什么区别?以及为什么我们要为函数参数赋值空值?

function prints($var = '') {
echo $var; }

function prin($var) {
echo $var; }

两者都打印相同的结果。

如果我们为函数参数赋值空值会发生什么?

5 个答案:

答案 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(),它会将其视为使用空字符串调用它 - 打印('')。

如果没有定义参数,则无法调用第二个函数,因为它没有设置默认值,并且会发出错误。