| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Для чего используются эти скобки? |
| Автор: BASILIO 21.3.2008, 19:59 |
| Сабж {} В теме о безопасности в ПХП было написано что переменные в них заключать надо, можете обяснить что будет при этом происходить? Зарание Спасибо |
| Автор: Feldmarschall 23.3.2008, 13:42 |
| во-первых, непонятно, почему вопрос про синтаксис РНР задан в разделе по MySQL во-вторых, про синтакстис РНР надо читать в документации РНР: http://php.net/types.string в-третьих, к безопасности это не имеет никакого отношения. |
| Автор: skyboy 24.3.2008, 01:08 |
| Feldmarschall, странно. видел эту тему в PHP. возможно, кто-то промахнулся при переносе темы. |
| Автор: BASILIO 24.3.2008, 01:17 |
| skyboy, нет, тему создавал в майсквл Feldmarschall, 1. Насколько я помню, скобки были в синтаксе сквела, потому сюда 2. Не все способны понять текст мануала, я часто не понимаю мануалы, чтоб мне понять один мануал часто надо прочитать ешчё штук 10, потому спрашиваю у людей, которые могут подскозать напрямую на понятном языке, если нету желания помочь, не вижу смысла писать в теме 3. -Ето было, написано в теме о безопасности, тама как типа бороться против сквл-инэкций |
| Автор: awers 24.3.2008, 02:12 | ||||||
BASILIO,
Ты это имел в виду? Конечно ненадо. Правильно так:
засыпал, сорри ))) конечно я имел в виду
|
| Автор: DioNiR 24.3.2008, 03:55 | ||||||||||
По мне лучше уж писать так:
нежели
Так как не все редакторы подсвечиваются второй пример. Когда в пером он подсветит где переменная а где текст. В целях безопасности эти варианты идентичны. Впринципи тут не иммет роль как ты напишешь на безопасность тут не повлияет. Повлияет только время загрузки. Так как
Будет работать дольше нежели
|
| Автор: szz 24.3.2008, 04:08 | ||
DioNiR,
|
| Автор: BASILIO 24.3.2008, 05:53 |
| Ну и кому пришла в голову идея перенести тему?!? ТЕМА ПРО MYSQL ЗАПРОСЫ БЛИН Добавлено через 5 минут и 37 секунд Вот -ето иммелось ввиду ПС: Модератор, перенеси плз тему туда откуда взяли, и больше так не делайте, я данный форум знаю с его пелёнок и знаю что куда постить, так что не надо мне указывать куда мне постить, чтоб я не указывал напровление вашего похода. Спасибо |
| Автор: TUMS 24.3.2008, 06:50 |
| Модератор прав, ибо {$cell} берётся из PHP. Поэтому комментарии предыдущих авторов тоже верны. |
| Автор: skyboy 24.3.2008, 14:52 | ||
|
| Автор: flashaa 24.3.2008, 14:57 | ||
Awers, а что плохого в "... {$object->val}" ? |
| Автор: awers 24.3.2008, 15:06 |
| flashaa, скорость работы. изначально все что в ' ' - считается текстом и пхп не ищет внутри переменные, все что заключено в " " - это смешанный тескт и переменные. Обработка "фыволдра ыов лоролр {$myVar}" будет дольше чем 'фыволдра ыов лоролр '.$myVar Советую почитать статьи по оптимизации кода и еще неплохо было бы посмотреть исходники пхп. |
| Автор: Feldmarschall 24.3.2008, 15:07 |
| Я думаю, это вопрос вкуса., и принципиальной разницы нет. Хотя второй вариант читабельнее в большинстве систем с подсветкой кода. Добавлено через 59 секунд Ой, awers, вот только это не надо, плиз. Ну не бывает ситуаций, когда скорость обработки строк в разных кавычках хоть на что-нибудь влияла бы |
| Автор: awers 24.3.2008, 15:10 |
| Feldmarschall, там где на сервер очень большие нагузки - разница есть. Проверял сам. Да, это не 3-5%, но 1-1,5 будет (ну конечно от ситуации и количества таких использований) |
| Автор: flashaa 24.3.2008, 15:10 |
| awers, я думаю одна переменная в такой строке увеличит время работы на одну милиярдную секунды ) К тому же конкатенация - тоже операция и она не моментально выполняется. Хотя вообщем я с тобой согласен. Но в последнее время немного раздражает писать отдельные строки, это получается несколько дольше, чем написать переменную в двойных кавычках. К тому же редакторы подсвечивают переменную в строке и она не теряется из вида, а фигурные скобки гарантируют то, что имя переменной не сольется с какой-нибудь частью строки. |
| Автор: awers 24.3.2008, 15:13 |
| flashaa, в случае с использованием "sjkfhjsdh {$var}" это да, но тут фигурные скобки были сделаны по большей части для обращения к сложным объектам типа "zahsadhf {$obj->data[$silver]->get()->row(1)}" ... |
| Автор: Feldmarschall 24.3.2008, 15:14 |
| Неправда.Там и 0,01 процента не будет. Учитывая поднимающийся апач, кучу файловых операций, не говоря уже об обработке запросов и получении данных - на этом фоне парсинг строк вообще незаметен. покажи мне тест, который запускает apache benchmark, эмулируя "очень большие нагузки", и показывает хоть какую-то разницу. Тесты "мильён итераций бессмысленных операций" давно уже никого не впечатляют. |
| Автор: flashaa 24.3.2008, 15:20 |
| Предлагаю просто посмотреть исходники PHP там где идет парсинг строк и где конкатенация ) |
| Автор: awers 24.3.2008, 15:22 |
| хотя бог его конечно знает что они смогли выдавить из 5ого пхп, может и вправду почти одинаково. может вечерком посмотрю исходники, на работе нет |
| Автор: Feldmarschall 24.3.2008, 15:48 |
| awers, я думаю, ты имеешь в виду http://blog.libssh2.org/index.php?/archives/28-How-long-is-a-piece-of-string.html, после публикации которой, действительно, парсинг строк в двойных кавычках подоптимизировали. Но дело-то даже не в этом. И без той оптимизации разница неосязаема. Никто, почему-то, не задумывается, что рядом, в том же самом скрипте, лежат конструкции, которые парсятся в тыщи опкодов! На фоне которых разница уже не видна. И это только на уровне интерпретации пхп. А мы не берем веб-сервер. который совершает десятки файловых операций, каждая из которых рядом с этими опкодами не стояла. Ну не имеет смысла считать копейки при покупке мерседеса. Даже при покупке колбасы никто копейки не считает. Отбрасывают. А здесь эти неразличимые взгляду затраты прямо бревном в глазу стоят у некоторых. Написал строку в двойных кавычках - все, скрипты умерли. |
| Автор: Fortop 24.3.2008, 16:05 | ||
Лучше бы это Я лично, с удовольствием бы почитал |
| Автор: awers 24.3.2008, 16:31 |
| Вообще пошла уже религия, я небуду спорить, просто мне бы хотелось делать правильно. Может это и некчему, но всеже |
| Автор: bars80080 24.3.2008, 17:06 | ||
да оно просто понятней выглядит
когда начинается чехарда с переменными, а потом с пмассивами, да не простыми, а многомерными, а тем более с объектами в этих двойных кавычках, то легко запутаться и потом лезть на форум с вопросом: почему не работает? а так сцепил их наподобии состава и сразу видно, вот переменная, вот чистый текст |
| Автор: BASILIO 24.3.2008, 19:19 |
| Дискуссия у вас интерсная, много чего есть почитать, но всё равно не нашол ответа на вопрос Какую роль играют ковычки в этом коде? |
| Автор: Feldmarschall 24.3.2008, 19:42 |
| http://phpfaq.ru/slashes. Если у тебя возникает какой-то вопрос по этим темам - идешь и читаешь. |
| Автор: awers 24.3.2008, 20:25 | ||
BASILIO, ты привел не полный код. скорее всего это
это просто экранировка переменной, во избежании сливания с простым текстом |
| Автор: Feldmarschall 24.3.2008, 22:03 |
| awers, думаешь, он спрашивает не про кавычки, а про скобки? Вообще да, может быть. |
| Автор: BASILIO 24.3.2008, 22:14 |
| Да, я спрашивал про скобки, сверху немного опечатался. Что означает: ? |
| Автор: Feldmarschall 24.3.2008, 22:29 |
| Что это означает, написано по ссылке, которую я привел в самом первом ответе на твой вопрос. Давай ты хотя бы попытаешься прочесть, и только потом, если что-то будет непонятно, будешь задавать вопросы. |