函数声明中的默认 NULL

Default NULL in function declaration

为什么我们需要在函数中将参数 $slug 声明为默认参数 NULL? 如果我们不将其声明为默认值 NULL,会有什么变化?

在我看来,一切都不会改变:

public function view($slug = NULL)
{
    $data['news_item'] = $this->news_model->get_news($slug);

    if (empty($data['news_item']))
    {
        show_404();
    }
    ...

使参数可选。

在 PHP 中创建函数时,可以提供默认参数,这样当参数未传递给函数时,它仍然可以在函数中使用预定义值。这些默认值也可以称为可选参数,因为它们不需要传递给函数。

假设你有这样的功能;

function testFunction($a = 1)
{
    return $a;
}
// When u call it
echo testFunction(); // prints 1
echo testFunction(2); // prints 2

您可以选择设置默认值(在您的情况下为 NULL),这将使该参数成为可选的,而不是必需的。这就是为什么它在您看来是不必要的,您可能只使用参数调用此函数。

你可以查一下here

无默认参数:

当你用这个写函数时 header

public function view($slug)

调用此函数时必须传递一个参数。 否则这将引发错误。

默认参数:

public function view($slug = NULL)

有了这个 header 你可以但不必交出一个参数。