Курепин Руслан
С большим удивлением узнал, что многие (иногда даже не начинающие) PHP-программисты не знакомы с разницей между обработкой данных в кавычках (") и апострофах ('). А между тем, разница очень важна, хоть и проста по своей сути — в кавычках данные "парсятся", а в апострофах — нет.
Проще говоря, строки в двойных кавычках (") PHP будет анализировать на наличие специальных символов и переменных, а в одинарных кавычках (апострофах) почти никаких изменений производиться не будет.
В общем, не надо быть семи пядей во лбу, чтобы сделать вывод — строки в одинарных кавычках обрабатываются быстрее, чем в двойных. И тесты показывают, что так оно и есть.
Подробнее о строках можно прочесть на странице руководства по PHP: php/manual/en/language.types.string.php.
Пожалуй, получилась самая короткая PHP-заметка. Давайте дополним ее некоторыми примерами записи строк в PHP.
Предположим, что у нас есть SQL-запрос, складывающийся из базового текста и некоторых переменных. Пусть самая простая запись выглядит так:
$query="select $field from $table where $field='$data' limit $n";
Это традиционная запись, которую можно увидеть и в учебниках по PHP и в официальной документации. Да и я в своем курсе часто использовал именно такую запись строковых данных.
Действительно, для понимания подобная форма записи наиболее удобна. Особенно удобна она новичкам, еще не научившимся налету "проглатывать" конкатенацию подстрок и переменных. Между тем, это самамя "тяжелая" форма записи. PHP дольше других будет интерпретировать эту строку.
Следующим шагом навстречу PHP можно назвать вынесением имен переменных из строки:
$query="select ".$field." from ".$table." where ".$field."='".$data."' limit ".$n;
Это ускорит обработку строки, можете мне поверить.
Что можно сделать еще? Нужно поменять двойные кавычки на одинарные апострофы, чтобы PHP не пытался разбирать строки в поисках переменных и спецсимволов:
$query='select '.$field.' from '.$table.' where '.$field.'=''.$data.'' limit '.$n;
Вот мы и привели строку к "правильному" виду. В таком виде строка будет понята интерпретатором быстро и без разночтений.
Напоследок попробую выдумать забавный пример комбинирования одинарных и двойных кавычек:
echo 'Переменная $name содержит имя ''.$name.''.<br>'."n".'А переменная $id содержит цифру '.$id.', которая в свою очередь поможет выбрать из массива $select[] значения:<br>'."n".'<pre>name'."t".'age'."t".'town</pre> и другие...'."n".'.';
Результат работы этой строки выглядит так:
-----
Переменная $name содержит имя ''.
А переменная $id содержит цифру , которая в свою очередь поможет выбрать из массива $select[] значения:
name age town
идругие... .
-----
Но и это еще не все. Если речь идет о html-файле, то последний пример можно записать, например, как:
-----
<html><body>
Переменная $name содержит имя '<?=$name?>'.<br>
А переменная $id содержит цифру <?=$id?>, которая в свою очередь поможет выбрать из массива $select[] значения:<br>
<pre>
name age town
</pre>
и другие...<br>
</body></html>
-----
Результат будет таким же, только выполнится скрипт гораздо быстрее. Можно предложить и еще несколько вариантов записи этого выражения, но я завязываю с этим увлекательным занятием.
06.03.03
P.S. Не надо думать, что есть универсальные формы записи строковых выражений. Даже от версии к версии самого PHP происходят всевозможные изменения, влияющие на скорость обработки тех или иных фрагментов, что уж там говорить... Правды ради стоит заметить, что сегодняшняя скорость компьютеров в большенстве случаев позволяет пренебречь оптимизацией записи строковых выражений, но и злоупотреблять удобством в ущерб производительности тоже не следует. Думайте.
Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.
Другие работы по теме:
Семантические примитивы
Семантические примитивы - непреодолимые слова естественного языка, при помощи которых можно толковать значения всех остальных слов, выражений, а также предложений языка, не прибегая к герменевтическому кругу.
Как это пишется в Интернете
Во многих редакциях действуют "внутренние стандарты" - писаные или неписаные дополнения к обычным правилам орфографии и пунктуации. Они регламентируют написание новых слов, расстановку прописных букв и кавычек, другие трудные случаи.
«Функции языка Visual Basic. Выражения»
Если компьютер включен и Бейсик загружен, можно смело приступить к работе. Начнем с того, что вы хотите что-то вычислить. Бейсик для этого лучше, чем любой калькулятор. Наберите команду
Краткое доказательство гипотезы Билля
Формулировка гипотезы Билля и методика ее краткого доказательства. Анализ составляющих гипотезу алгебраических выражений. Использование метода замены переменных при доказательстве гипотезы Билля, не имеющей решения при целых положительных числах.
Статистические таблицы. Их виды
Выполнила студентка 4 курса Шведова А.А. Статистические таблицы. Их виды Понятие статистической таблицы Статистическая таблица – это наиболее рациональная форма изложения и изображения статистической сводки. Таблица состоит из пересечения граф и строк.
Приемы изображения народного характера в рассказе Лескова Левша
Приемы изображения народного характера в рассказе Лескова 8220 Левша 8221 Рассказ “Левша” был написан в 1881 г., но замысел подобного произведения, как установлено, возник уже около 1878 г. Считается, что Лесков однажды услышал шутку о том, как “аглицкие” инженеры сделали из стали блоху, а тульские мастера ее подковали и отослали обратно; этот анекдотический сюжет и лег в основу будущего произведения.
Язык в жизни человека
Автор: Сочинения на свободную тему Каждый из нас познаёт мир: одним познание даётся труднее, другим – полегче; один взрослеет быстрее, другой помедленнее. Но в любом случае никто из нас не обходится без родного языка, без слов и выражений самых простых.
Набат
Наба́т (от арабского «наубат» — барабанный бой) — оповещение или тревожный сигнал для сбора народа, подаваемый обычно ударами в колокол, реже барабанным боем. Также устаревшее название большого барабана, применявшегося в русских войсках, либо литавры[1].
Функции для работы с реестром
Нашел ряд функций-членов класса CWinApp: SetRegistryKey, GetProfileInt, GetProfileString, WriteProfileInt, WriteProfileString . Если кому интересен перевод MSDN'овского хелпа к этим функциям - то его можно найти здесь.
Синтаксис, основные объекты и команды системы Maple
Общий вид и назначение интерактивной системы аналитических вычислений Maple, выполняемые ею операции и правила их оформления. Простейшие объекты, с которыми работает программа: числа, константы и строки, сферы и особенности их практического применения.
Работа с файлам в Дельфи
В статье рассматриваются стандартные I/O операции с файлами, типичные ошибки и методы их предотвращения.
Язык математической разметки MathML
Язык разметки математических документов. Математический язык Markup (MathMl) является XML прикладной программой, поз воляющей описывать математические структуры и выражения. Цель MathMl состоит
Лабораторные по информатике
NAME P7.8 CSEG AT 0H ORG 0H MOV R2, #3 MOV B, #167 MOV A P1 MOV R3, A M1: MOV R4, #135 MOV A, R2 MOV P2, A SETB 3.7 CLR 3.7 SETB 3.7 M2: NOP DJNZ R4, M2 MOV A, P1 SUBB A, R3
Лабараторная работа №4
Цель работы: изучение правил записи констант, переменных, выражений, операторов присваивания, раздела определения констант, раздела описания переменных и общей структуры программы на языке Turbo-Pascal.
Описание Языка СИ
Элементы Языка СИ. Константы. Идентификатор. Ключевые слова. Использование комментариев в тексте программы.
Cache': перехват текущего устройства
Неудобство стандартных устройств mumps состоит в том, что если выполняется программный код, осуществляющий ввод-вывод через него, то этот процесс сторонним кодом неуправляем иначе как установкой возможных опций устройству.
Файлы
Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.
Программирование на языке Си++
Вычисление значений выражений при вещественных типах данных float и double. Нахождение суммы элементов, используя оператор цикла. Вычисление функций с разложением в степенной ряд. Работа со строками. Обработка массивов с использованием функций.
Логические операторы VB
В Visual Basic можно выделить пять основных и важных логических операторов: And, Or, Not, Xor и Eqv.
Лабораторные по информатике
Микропроцессоры. Отчет по лабораторным работам. Лабораторная работа №1. Задание. Составить программу записи во все порты О ЭВМ чередующихся нулей и единиц. Например в порт Р0 записать число в двоичной форме 01010101, в порт Р1 - 10101010 и т.д. Затем необходимо инвертировать значения во всех портах, т.е. в Р0 - 10101010, в Р1 - 01010101 и т.д.
Строковые данные и тестовые файлы
Основные данные о работе Версия шаблона Филиал Чебоксарский Вид работы Курсовая работа Название дисциплины Программирование на ЯВУ Тема Строковые данные и тестовые файлы
Выполнение арифметических действий и строковых операций
АННОТАЦИЯ Сердце персонального компьютера - микропроцессор, выполняющий арифметические, логические и вспомогательные операции, необходимые для решения задач. Первые микропроцессоры появились в конце 1960-х годов, когда исследователи и разработчики создали интегральную схему (ИС), содержащую различные электронные компоненты на едином кристалле полупроводника.
Разметка математических документов
Язык разметки математических документов. Математический язык Markup (MathMl) является XML прикладной программой, позволяющей описывать математические структуры и выражения. Цель MathMl состоит в том, чтобы дать возможность осуществлять специфические математические проекты в Web-сети.
Синтаксический разбор строк и конечные автоматы
Синтаксический разбор строк и конечные автоматы Андрей Боровский В этой статье речь пойдет о том, как анализировать информацию, переданную в виде последовательности символов (строку) и выделять из нее значимые элементы. Мы рассмотрим сравнительно простые ситуации, с которыми программистам приходится сталкиваться при решении самых разных задач: разбор выражений с простой синтаксической структурой, но с довольно свободными правилами записи.
ГИА алгебра 2009 кодификатор
Государственная (итоговая) аттестация выпускников IX классов общеобразовательных учреждений 2009 г. (в новой форме) по АЛГЕБРЕ Кодификатор элементов содержания по алгебре