使用可选参数调用 PHP 函数时,如何指定可选参数保持默认值?其他语言有一个default
可以使用的关键字 - substr($str, 0, default)
。
示例:substr($str, 0, null)
我已经指定null
为$length
参数,所以它会返回一个空字符串,实际上我想要整个字符串。
从substr
文档中:
如果给出长度并且为0、FALSE或NULL,则将返回一个空字符串。
所以在这种情况下,我不能像往常null
一样指定,我也不能指定一个数字。
问题
$length
参数的默认值是substr
多少?- 有没有办法将参数指定为默认值,即默认关键字/运算符?
真实例子:
我想从格式错误的 URL 中提取主机名。
$url = 'example.com';
if(!$host = parse_url($url, PHP_URL_HOST))
{
//There is no URL protocol so parse_url won't work
$host = substr($url, 0, strpos($url, '/') ?: null);
}
echo $host;
在上面的示例$host
中是一个空字符串,因为$url
不包含任何正斜杠 ( /
)。如果在末尾添加斜线,$url
则可以正常工作($url = 'example.com/'
)。
我意识到我可以只使用if
子句而不是三元,但我想知道是否有任何方法可以发送默认参数而不是null
.