У вас вопросы?
У нас ответы:) SamZan.net

Запись строковых выражений, кавычки

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.2.2025

Запись строковых выражений, кавычки 

Курепин Руслан

С большим удивлением узнал, что многие (иногда даже не начинающие) PHP-программисты не знакомы с разницей между обработкой данных в кавычках (") и апострофах ('). А между тем, разница очень важна, хоть и проста по своей сути — в кавычках данные "парсятся", а в апострофах — нет.

Проще говоря, строки в двойных кавычках (") PHP будет анализировать на наличие специальных символов и переменных, а в одинарных кавычках (апострофах) почти никаких изменений производиться не будет.

В общем, не надо быть семи пядей во лбу, чтобы сделать вывод — строки в одинарных кавычках обрабатываются быстрее, чем в двойных. И тесты показывают, что так оно и есть.

Подробнее о строках можно прочесть на странице руководства по PHP: http://www.php.net/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 происходят всевозможные изменения, влияющие на скорость обработки тех или иных фрагментов, что уж там говорить... Правды ради стоит заметить, что сегодняшняя скорость компьютеров в большенстве случаев позволяет пренебречь оптимизацией записи строковых выражений, но и злоупотреблять удобством в ущерб производительности тоже не следует. Думайте.

Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://andrey.nnov.ru/




1. НАУКОВИЙ ІНСТИТУТ ПРАВА Кафедра кримінальноправових дисциплін ЗАТВЕРДЖУЮ Перший проректор Д
2. Тема 10- Сестринский процесс при черепномозговых травмах поврежден
3. Статья 83 Прекращение трудового договора по обстоятельствам не зависящим от воли сторон Трудовой дого
4. Володимир Вернадський
5. Безрадостное положение вещей сказывается на всех трех основных уровнях государственного управления федер
6. Использование облигаций как инструмента привлечения средств на предприятии 001
7. Немощного в вере принимайте без споров о мнениях
8. Тема- Дослідження характеристик транспортного потоку на нерегульованих перехрестях
9. Социальное партнерство во имя развития на 2014 год Конкурс проводится в соответствии с Законом Краснояр
10. Путешествие в страну игрушек