声明 PHP 参数的不寻常方式



在下面粘贴的代码中,函数接受 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

最新更新