background image

PHP

 

     中如何为函数的参数设定默认值

 

 

在 PHP 中,你可以当函数调用者没有为函数传递必要的参数时,为该参数指定默认

的值。例如,一个绘制表格的函数可能需要通过一个参数来指定边框的宽度,而如果未传

递该参数则把其默认值设置为 1。

在函数原型内部为参数指定默认值:

function wrap_html_tag($string, $tag = 'b') {

return "<$tag>$string</$tag>";

}

本方案中把标签的默认值设置成了 6,可以实现加粗的效果。例如:

$string = 'I am some HTML';

wrap_html_tag($string);

将会返回:

<b>I am some HTML</b>

而下面的例子:

wrap_html_tag($string, 'i');

则会返回:

<i>I am some HTML</i>

在指定默认值时有两件事值得特别关注。第一,所有指定了默认值的参数必须出现在

未指定默认值的参数后面。否则,PHP 无法判定省略的哪个参数应该取得默认值,以及哪

个变量需要覆盖默认值。所以,wrap_html_tag()不能定义成:

function wrap_html_tag($tag = 'i', $string)

如果采取以上形式定义并给 wrap_html_tag()只传递一个参数,PHP 会将这个值指定

给$tag,并发出缺少第二个参数的警告。

第二,指定的值必须是 PHP 常量,例如字符串或者数字,而不能是变量。同样地,

以 wrap_html_tag()为例,不能像下面这样:

$my_favorite_html_tag = 'i';

function wrap_html_tag($string, $tag = $my_favorite_html_tag) {

...

}

如果想以空值作为默认值,一种选择就是为参数指定一个空字符串:

function wrap_html_tag($string, $tag = '') {