在 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 = '') {