Подтвердить что ты не робот

Публичные функции и функции в CodeIgniter

В PHP, в чем разница между объявлением методов внутри класса, например

public function VS function

Например:

public function contact()
{
    $data['header'] = "Contact";
    $this->load->view('admin/admin_contact', $data);
}

VS

function contact()
{
    $data['header'] = "Contact";
    $this->load->view('admin/admin_contact', $data);
}

Лучше ли использовать публичную функцию или функцию и почему?

4b9b3361

Ответ 1

Способы, объявленные с помощью любого явного ключевого слова видимости, являются наилучшей практикой. Он выглядит и чувствует себя лучше, и это не путает людей.

  • В большинстве правил кодирования PHP5 (например, Zend, Symfony...) требуется общедоступное ключевое слово, поэтому оно знакомо.
  • Это означает, что объявления переменных и методов используют один и тот же синтаксис.
  • Это более явное и заставляет разработчиков учитывать их метод видимость.

Ответ 2

Согласно PHP.net

Метод класса может быть определен как открытый, закрытый или защищенный. Методы, объявленные без какого-либо явного ключевого слова видимости, определяются как public.

для лучшей практики я предлагаю использовать ключевые слова видимости (esp при использовании более высоких версий PHP). он предотвращает путаницу (например, тот, в котором вы сейчас находитесь) и способствует стандартной практике кодирования.

Ответ 3

Нет никакой разницы между этими двумя. Оба они одинаковы. В кодеиндигните оба имеют одинаковый смысл и может вызываться с использованием стандартных тегов URI, если вы не дадите '_' перед именем вашей функции   _fname() не будет называться

Ответ 4

Это то же самое... Если вы не укажете, что методы/функции видимости объявляются как public

Способы, объявленные без какого-либо явного ключевого слова видимости, определяются как public

из docs here

Ответ 5

Если вам действительно нужна лучшая практика, вы всегда будете пользоваться общественностью. Но для codeigniter Framework это не означает, что вы объявите его публичным или нет. Обратите внимание: если вы хотите, чтобы контроллер был закрытым, вы не используете private, но вы будете использовать знак подчеркивания (_) перед именем вашего контроллера, чтобы он не был видимым.

Ответ 6

  • Оба объявления одинаковы, и обе функции будут доступны по запросу URI в codeigniter
  • Чтобы запретить вызов метода пользователем, используйте частные или защищенные спецификации доступа.