Как я могу сделать объявление переменной необязательно в codeigniter? - PullRequest
0 голосов
/ 27 октября 2009

из модульной среды программирования php Я привык использовать переменные в php независимо от того, были ли они созданы или нет.

Я использую codeigniter около месяца и заметил, что строго соблюдается не использование переменной, если они не определены / не объявлены.

Я хотел бы знать, какова цель этого и чем оно отличается от того, чтобы не быть строгим в отношении необъявленных переменных?

есть ли способ отключить эту функцию в codeigniter, если я предпочитаю использовать необъявленные переменные? и если да, то какие минусы я бы получил?

Ответы [ 3 ]

2 голосов
/ 27 октября 2009

Основной причиной инициализации всех переменных является безопасность. Это действительно важно, если у вас есть register_globals (что не следует делать). Но даже помимо этого, это хороший стиль и помогает отладку, если ваши переменные всегда находятся в определенном и известном состоянии. Если вы привыкли всегда инициализировать свои переменные и вдруг получите предупреждение об использовании неинициализированной переменной, вы знаете, что это происходит из-за опечатки, а не из-за множества других причин. Другая причина - переработка переменных в более длинных функциях (чего в любом случае следует избегать, но это может привести к путанице, если вы не реинициализируете переменную).

Поскольку использование неинициализированных переменных является языковой"функцией", она все еще доступна в CodeIgniter. CI может установить по умолчанию уровень сообщений об ошибках выше, чем вы привыкли, что, вероятно, приведет к более видимым предупреждениям, чем раньше.


Если вы не это имели в виду, уточните свой вопрос.

0 голосов
/ 27 октября 2009

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

0 голосов
/ 27 октября 2009

В вашем файле index.php в корне вашего проекта установите это:

error_reporting(E_ALL);

до:

error_reporting(E_ALL  & ~E_NOTICE);

Этот параметр не отображает ошибки уровня E_NOTICE

для получения дополнительной информации проверьте http://uk.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

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