![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| iishelp |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.3.2008 Репутация: нет Всего: нет |
Есть константа
Как к ней обратиться внутри кавычек:
Так можно, только если CONST_NAME была переменной. Есть ли похожий вариант для констант, а то приходится писать так:
что бывает иногда неудобно? |
||||||
|
|||||||
| Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
iishelp, последний вариант - правильный вариант написания, используйте его.
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
прямо скажем, включение любой переменной/константы внутрь кавычек - есть зло, за которое приходится платить программисту если уж не горючими слезами, так потерянным временем на поиски дубовых ошибок
|
|||
|
||||
| godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
||||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
godvinn, вопрос топикстартера читал?
Добавлено через 18 секунд iishelp, брсь это дело. |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
А что плохого в "$var1 $var2" ?
|
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 8 Всего: 32 |
помню перечислялось сразу несколько причин не использовать переменные внутри кавычек. Если честно лень искать
скажу так (сейчас так модно -------------------- ![]() ![]() |
|||
|
||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Некрасиво/не принято. Плюс работодатель может воспринять как признак непрофессионализма(я бы воспринял по крайней мере).
Раньше говорили о быстродействие, сейчас плевать - и то и то настолько нетребовательно к ресурсам, что даже при разнице в два раза практической выгоды считайте ноль. |
|||
|
||||
| Dima 2015 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 16.3.2008 Где: SPb Репутация: 2 Всего: 2 |
theworldcreator, неужели и внутри sql-запросов воспринял бы?
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
не знаю как насчёт профессионализма, а вот читабельность резко ухудшается при загоне переменных внутрь кавычек. плюс ещё надо тратить время на осознание, как там они должны указываться
|
|||
|
||||
| theworldcreator |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Dima 2015 угу. Хотя у меня мало опыта работы с чужим кодом, но сам всегда пишу либо так:
Либо так:
В таком случае применил бы второй вариант, но когда операций с данными больше чем один вызов функции, бывает читабельнее введение новой переменной. Функция quote_smart() взята из мануала PHP - ссылка. P.S. разумеется я не копирую всякий раз этот код, а действую по ситуации, но общие правила оформления такие. |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
что за quote_smart? почему не знаю? почему нет в http://php.ru/manual/index.functions.html ?
чем отличается от mysql_real_escape_string(); ? я б кстати посоветовал бы сам запрос выносить в отдельную переменную, а не формировать его прямо в функции. у меня пожизни он сильно составной из переменных с условиями |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Лично мое мнение в константах лучше хранить переменные которые и не будешь изменять в дальнейшем настройки соединения бд путь от рутной директории и большой плюс в константах, что их можно использовать внутри класса любой вложенности.
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
По крайней мере не так ужасно, как оптимизация(точнее обфускация) через '' . $ . '' . $ . '' Добавлено через 53 секунды
Переменные внутри кавычек очень хорошо выделяются ;) |
||||
|
|||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Sanchezzz, а как ваше высказываие относится к теме?
theworldcreator,
Вообще-то это считается дурным тоном. 1. Заброс лучше формировать в переменной и потом уже скармливать функции, т.к. это потом облегчает отладку -- легко можно вывести/залоггировать именно тот запрос который выполняется 2. Подстановку параметров конкатенацией строк принято считать злом ,т.к. это во-первых добавляет возможности для ошибки, во-вторых нужно еще понять что ты конкатенируеш (кусок запроса самого или таки параметры), в-трерих тяжелее переписывать на db-lib которая поддерживает плейсхолдеры. А хорошим тоном считается таки использование плейсхолдеров. Если их не поддерживает dblayer то эмуляция через тот же sprintf bars80080, quote_smart -- своя функция. theworldcreator приводил пару дней назад ее код в своей теме о безопасности -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |