Почему мы должны объявить $slug
аргумент по умолчанию NULL
в функции?
Что изменится, если мы не объявим его по умолчанию NULL
?
Похоже, что ничего не изменится
public function view($slug = NULL)
{
$data['news_item'] = $this->news_model->get_news($slug);
if (empty($data['news_item']))
{
show_404();
}
...
У вас есть возможность установить значение по умолчанию (NULL
в вашем случае), что делает этот аргумент необязательным, а не обязательным. Вот почему вам кажется, что это не нужно, вы, вероятно, вызываете эту функцию только с аргументом.
Вы можете посмотреть это Вот.
Нет параметра по умолчанию:
Когда вы пишете функцию с этим заголовком
public function view($slug)
Вы должны передать параметр при вызове этой функции.
В противном случае это приведет к ошибке.
Параметр по умолчанию:
public function view($slug = NULL)
С этим заголовком вы можете, но не обязаны передавать параметр.
Сделать параметр необязательным.
При создании функций в PHP можно предоставить параметры по умолчанию, чтобы, когда параметр не был передан в функцию, он все еще был доступен внутри функции с заранее заданным значением. Эти значения по умолчанию также можно назвать необязательными параметрами, поскольку их не нужно передавать в функцию.
Допустим, у вас есть такая функция;
function testFunction($a = 1)
{
return $a;
}
// When u call it
echo testFunction(); // prints 1
echo testFunction(2); // prints 2