Что означает назначение переменной, используемой в качестве аргумента функции, в PHP? - PullRequest
1 голос
/ 09 марта 2012

Извините, я знаю, что это очень простой вопрос, но я искал здесь на SO и пытался позволить Google быть моим другом безрезультатно.

Мне интересно, что такое присвоение переменнойв качестве аргумента для функции в PHP.В частности, я нашел этот пример в документации Codeigniter:

public function get_news($slug = FALSE)
{
    if ($slug === FALSE)
    {
        $query = $this->db->get('news');
        return $query->result_array();
    }

    $query = $this->db->get_where('news', array('slug' => $slug));
    return $query->row_array();
}

По сути, это метод класса контроллера, который должен принимать любой запрос к контроллеру «News», который имеет аргумент, и запрашиватьdb, чтобы увидеть, существует ли новость с слагом, соответствующим этому аргументу.

Я предполагаю, что это инициализирует переменную от $slug до FALSE, но затем, если пользователь передает фактический аргумент "slug" методу, это значение FALSE немедленно перезаписывается перед тем, какзначение передается в функцию, но я нигде не могу найти информацию об этом.

Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 09 марта 2012

http://php.net/manual/en/functions.arguments.php

Функция может определять значения по умолчанию в стиле C ++ для скалярных аргументов как следующим образом:

Переменная по умолчанию равна тому, что установлено в аргументе, если ничего не было передано, как в c ++. Если вы не дадите значения аргументу, он использует значение по умолчанию, которое вы определили. Любое значение, переданное вами в качестве аргумента, переопределяет аргумент по умолчанию.

1 голос
/ 09 марта 2012

Вы назначаете значение по умолчанию этому параметру. Если вы вызовете свой метод без значения, в качестве значения по умолчанию для $ slug будет использоваться значение FALSE.

0 голосов
/ 09 марта 2012

В этом примере $ slug имеет значение по умолчанию. Если вы не меняете его, он идет в первом if (), который запрашивает новости без слагов. Если вы укажете что-то в качестве аргумента, оно будет использовано во втором запросе с использованием слага в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...