Php 函数声明中的默认值为NULL

Php 函数声明中的默认值为NULL,php,function-parameter,Php,Function Parameter,为什么我们需要在函数中将$slug参数声明为默认值NULL? 如果我们不将其声明为默认值NULL,会发生什么变化 对我来说,一切都不会改变: public function view($slug = NULL) { $data['news_item'] = $this->news_model->get_news($slug); if (empty($data['news_item'])) { show_404(); } ...

为什么我们需要在函数中将
$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
,在您的情况下),这将使该参数成为可选参数,而不是必需参数。这就是为什么在您看来它是不必要的,您可能只使用一个参数调用这个函数

您可以查找此项。

无默认参数:

public function view($slug = NULL)
当您使用此标题编写函数时

public function view($slug)
调用此函数时,必须移交一个参数。 否则将抛出一个错误

默认参数:

public function view($slug = NULL)

使用此标题,您可以但不必移交参数

区别在于调用函数的时间。如果设置了默认值,则可以不使用参数调用它,例如
$ob->view(),如果没有默认设置,则会出错,因为您需要传递一个值,例如
$ob->view('somevaluehere')