2010-06-02 2 views
1

Это может быть совершенно глупый вопрос, но я видел несколько примеров объявить переменные уложив их в bind_param:
http://devzone.zend.com/article/686MySQLi - объявление переменной после bind_param?

Я никогда не видел, это было сделано раньше, и все мои знания программирования говорит, что я должен определите их перед рукой. Является ли это действительным/предпочтительным способом?

ответ

2

Это возможно, потому что получает связанный является ссылкой переменных в вопросе, но я считаю, это ужасно плохой стиль:

  • Это делает код труднее читать, поддерживать и отлаживать - переменная может быть изменена дальше по строке или даже в других функциях, вызываемых между привязкой и запросом.

  • Связывание переменной, прежде чем объявить, что будет сгенерировано сообщение E_NOTICE (Нет, это не делает. Приветствия @webbiedave)

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

+2

@ Kerry: Кроме того, для ясности переменная не объявляется * после ограничения, а, скорее, * присваивается * значение после ограничения. Это объявление встречается в вызове функции (потому что оно передается по ссылке). – webbiedave

+1

@webbiedave - спасибо. Это имеет больший смысл, поэтому, если он не объявлен, он выдает предупреждение E_NOTICE, но по мере его передачи по ссылке не имеет значения, когда он объявлен до его выполнения до его выполнения. –

+0

@webbiedave, вы правы, исправил мой ответ. –

Смежные вопросы