在下面粘贴的代码中,函数接受 2 个参数
我知道第一个参数 - $dir
- 在调用函数时会传递到函数中,并且使用变量 $dir
访问数据。
然而,第二个论点让我感到困惑。我以前从未见过以这种方式编写的参数,它将$ext
的值设置为".php"
?如果是,为什么要在参数中包含这样做(它可以在函数本身中声明?
如果没有,那么它在做什么?
public static function register($dir, $ext = '.php')
{
$autoloader = new static($dir, $ext);
spl_autoload_register([$autoloader, 'load']);
return $autoloader;
}
在 PHP 中,您可以为函数参数提供默认值。在这种情况下,第二个参数在省略时获取 .php
的值,如下所示:
classname::register($directory)
您可以在 php 中设置参数的默认值:
像这样调用函数:
register('some/dir');
将默认值 .php
分配给 $ext
。
您可以通过传递第二个参数来覆盖此默认值:
register('some/dir', '.txt'); // $ext will now be .txt