Открытые функции против функций в CodeIgniter - PullRequest
24 голосов
/ 24 марта 2012

В 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);
}

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

Ответы [ 6 ]

14 голосов
/ 24 марта 2012

Согласно PHP.net

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

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

11 голосов
/ 24 марта 2012

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

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

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

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

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

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

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

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

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

0 голосов
/ 20 августа 2015
  • Оба объявления одинаковы, и обе функции будут доступны по запросу URI в codeigniter
  • Чтобы предотвратить вызов метода пользователем, используйте спецификаторы частного или защищенного доступа.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...