宣布php参数的不寻常方式

时间:2014-04-04 21:23:20

标签: php methods

在粘贴的代码中,该函数接受2个参数

我知道第一个参数 - $dir - 在调用时传递给函数,并使用变量$dir访问数据。

然而,第二个论点让我感到困惑。 在将$ext的值设置为".php"之前,我从未见过以这种方式编写的参数? 如果是,为什么这样做完全包含在参数中(它可以在函数本身内声明?

如果没有那么它在做什么?

public static function register($dir, $ext = '.php')
{
    $autoloader = new static($dir, $ext);
    spl_autoload_register([$autoloader, 'load']);

    return $autoloader;
}

2 个答案:

答案 0 :(得分:3)

在PHP中,您可以为函数参数指定默认值。在这种情况下,第二个参数在被忽略时获取.php的值,如:

classname::register($directory)

答案 1 :(得分:0)

您可以在php中设置参数的默认值:

调用这样的函数:

register('some/dir');

会将.php的默认值分配给$ext

您可以通过传递第二个参数来覆盖此默认值:

register('some/dir', '.txt'); // $ext will now be .txt