🧙Конкурс сказок!
Уроки PHP
(OFF) gjm2mjg (B) 11 ноя 2016

Разница между кавычками

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

<?php

echo 'Hello, World!';
или

<?php

echo "Hello, World!";
В данном примере разница не заметна, но всё же её суть вот в чём. В отличие от одинарных, содержимое двойных кавычек интерпретируется, и поэтому мы можем вставлять переменные в выводимый текст, и на месте переменной будет её значение:

<?php

$text = 'World!';
echo "Hello, $text"; // Hello, World!;
<?php

$text = 'World!';
echo 'Hello, $text'; // Hello, $text
Это разница с практической точки зрения - использовать двойные кавычки удобнее, но и здесь есть но! PHP - интерпретируемый Язык Программирования - это значит, что, в отличие от компилируемых ЯП файл с программным кодом выполняется построчно, последовательно. То есть интерпретатор читает из файла следующую строку и разбирает её на части, которые сразу же выполняет. Если текст будет выводиться в двойных кавычках интерпретатору придется не просто вывести текст как есть, а немного задержаться, и подставить на место переменных их значения. Это хоть и незначительно, но всё же замедляет выполнение программного кода. Чтобы Вы до конца прониклись мыслью, давайте рассмотрим такой пример. Допустим, Вы произносите такую речь:
1. Мне 25 лет!
Вроде бы всё ясно, всё выскажется молниеносно. А если так:
2. Мне 5 * 2 + 5 + (2 + 8) лет!
Несколько сложнее? :-) Тут уже нужны арифметические рассчеты. Более того, необходимо учитывать и скобки, и приоритет действий. Вы, безусловно, скажете "Мне 25 лет!", но, согласитесь, с некоторой задержкой - в данном случае интерпретатору PHP тоже потребуется время на разбор и выполнение арифметики. Хоть и мизерное (компьютер выполняет математические рассчеты гораздо (!) быстрей человека!), но всё же понадобится. Когда таких моментов становится очень много, их использование проявляет свою "темную" сторону - задержки в выполнении программного кода. При худшем "раскладе" эти задержки будут в доли секунды, но если на Вашем сайте одновременно будут тысячи посетителей, эти задержки будут секундными, а то и более, что будет негативно сказываться на использовании сайта - это уже вопросы оптимизации, о которых нам с Вами еще рано говорить, но всё же усвойте этот момент!

Комментарии (8)

(B)
Пример экранирования кавычек
<?php
echo "Hello \"World\" ";
// Hello "World"
?>
:cool2
Я что-то завтыкал описать этот вопрос :-( Нужно будет отредактировать запись...
Спасибо, дружище! :pivo
(B)
ответил gjm2mjg
Ну мы все же не компы. :дружба
Ещё в базы о-очень часто приходится составлять запросы сочетающие оба типа кавычек :cool2
Ошибочка

Чтобы Вы до конца прониклись мыслью, давайте рассмотрим такой пример. Допустим, Вы произносите такую речь:
1. Мне 20 лет!
Вроде бы всё ясно, всё выскажется молниеносно. А если так:
2. Мне 5 * 2 + 5 + (2 + 8) лет!
2+8=10
5*2=10
10+10+5=25

25!=20
Спасибо, исправлю!
ответил gjm2mjg
Пожайлуста :chit3
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
Уроки PHP
Битва танков
Управляй многотонной боевой машиной, участвуй...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play