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

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

public function VS

Например:

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

В.С.

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

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

Solutions Collecting From Web of "Публичные функции и функции в CodeIgniter"

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

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

Согласно PHP.net

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

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

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

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

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

из документов здесь

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

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