Php двойные кавычки в строке. Разница между двойными и одинарными кавычками в PHP

Я не эксперт в PHP-программировании, но я немного смущен, почему я вижу некоторый код в PHP со строкой, помещенной в одинарные кавычки, а иногда и в двойные кавычки.

Я просто знаю в.NET или языке C, если он находится в одной кавычке, это означает, что это символ, а не строка.

11 ответов

что вы должны знать

$a = "name"; $b = "my $a"; == "my name" $c = "my $a"; != "my name"

в PHP люди используют одинарную кавычку для определения постоянной строки, например "a" , "my name" , "abc xyz" , при использовании двойной кавычки для определения строки содержит идентификатор, например "a $b $c $d" .

Echo "my name";

быстрее чем

Echo "my name";

Echo "my " . $a;

медленнее, чем

Echo "my $a";

это верно для других используемых строк.

пример одиночных, двойных, heredoc и nowdoc кавычек

оба вида вложенных символов являются строками. Один тип цитаты удобно использован для того чтобы заключить другой тип цитаты. """ и """ . Самая большая разница между типами кавычек заключается в том, что ссылки на вложенные идентификаторы заменяются внутри двойных кавычек, но не внутри одинарных кавычек.

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

$test = "variable"; echo "Hello Mr $test"; // the output would be: Hello Mr variable echo "Hello Mr $test"; // the output would be: Hello Mr $test

здесь двойная кавычка анализирует значение, а одинарная кавычка рассматривается как строковое значение (без разбора переменной $test.)

возможно, я немного опоздал, и немного не по теме, но все же...

вам не нужно выбирать из-за содержимого вашей строки между:
alert("It"s \"game\" time."); или alert("It\"s "game" time.");

вместо этого вы можете ввести вот так, а затем использовать двойные или одинарные кавычки, потому что это не имеет значения:
alert("It’s “game” time."); и alert("It’s “game” time.");

$name = "test"; $singleQuote = "This is example for single quote $name"; // here $name variable not evaluating echo $singleQuote; // Output: This is example for single quote $name $singleQuote = "This is example for single quote $name"; // here $name variable will evaluate and replace variable value echo $singleQuote; // Output: This is example for single quote test Also inside single quote expression evaluate faster campare to double quotes

одно:

очень важно отметить, что строка с закрывающим идентификатором помощи heredoc должен содержать никаких других символов, кроме точка с запятой (;) . Это означает, что идентификатор не может быть отступом , и не может быть помещения или вкладки до или после запятой.

пример:

$str = <<

Не секрет, что кавычки в php бывают одинарные и двойные. Давайте выясним, когда уместнее те или иные варианты использования кавычек.

Одинарные кавычки

Простейшим способом определить строку является — выделение текста в одинарные кавычки.

Если нам нужно использовать одинарную кавычку в тексте, то необходимо проэкранировать ее косой чертой (\).

Управляющие последовательности в одинарных кавычках не работают.

Примеры использования одинарных кавычек :

Двойные кавычки

Если выделить текст двойными кавычками, то строка будет определена также, как и одинарными. Но отличия у кавычек конечно же есть.

Ситуация с экранированием кавычек такая же, как и с одинарными кавычками.

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

Важнейшим отличием является тот факт, что двойные кавычки обрабатывают переменные.

Примеры использования двойных кавычек :

Заострим внимание на том, что строки с двойными кавычками обрабатывают переменные.

Что происходит при обработке строки? Интерпретатор проверяют каждую строку с двойными кавычками на переменные , т.е. происходит принудительный парсинг, на что уходит дополнительное время. Да, часто это доли секунды, но сам факт надо понимать. То есть если сравнить обработку разными кавычками одной строки (без переменных само собой), то строка с одинарными кавычками однозначно будет обработана быстрее.

Расчеты

На сайте ProfiPHP нашел интересные расчеты на данную тему. Автор написал простой скрипт, с помощью которого вычислял время на обработку строк.

Строки в PHP обрамляются одинарными или двойными кавычками. Главное различие в том, что в двойные кавычки можно подставить переменную:

Теперь мы можем придумать ещё одно решение задачи из урока Переменные в PHP :

$title"; echo "

$content
"; ?>

Как PHP находит переменную в строке?

Всё просто. Помните, какие символы могут использоваться в названии переменной? Это цифры, буквы и подчёркивание _ .

Вот PHP и принимает за название всё, что находится между символом $ и первым запрещённым символом.

В следующем коде PHP неправильно определит название переменной и выдаст ошибку:

Результат в браузере:

Notice: Undefined variable: priceруб in D:\OpenServer\domains\сайт\index.php on line 3

Чтобы PHP правильно определил название переменной в строке, нужно поместить её в фигурные скобки {} :

Результат в браузере:

1499руб

Нет однозначного мнения, какие кавычки нужно использовать для обычных строк, в которые ничего не нужно подставлять. Однако, многие программисты предпочитают использовать одинарные кавычки.

Дело в том, что двойные кавычки у многих вызывают ассоциацию "в эту строку что-то должно подставляться". Поэтому я рекомендую использовать одинарные кавычки для обычного текста, а двойные - только когда в текст нужно подставить переменную. Пример:

Экранирование кавычек

Если вам нужно поместить кавычки внутрь строки, есть 2 способа это сделать:

Во втором примере обратный слеш \ экранирует следующую за ним кавычку, чтобы PHP воспринял её как строку.

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

Табуляция и перенос строки в двойных кавычках

Обратный слеш в двойных кавычках позволяет экранировать не только кавычки и самого себя, но и некоторые другие символы. Наиболее популярные из них - это табуляция (длинный пробел, который вы получаете при нажатии TAB) и перенос строки. Выглядят они следующим образом:

Напишите скрипт, который:
1. Создаёт переменную $type со значением Игра .
2. Создаёт переменную $name со значением "World of Warcraft" (с кавычками).
3. Выводит обе переменные внутри тега

. Между переменными должен быть пробел.

Я сторонник красивого и оптимизированного кода, хоть и не всегда у меня получается следовать всем правилам «хорошего тона» в программировании.

Сейчас же речь пойдет о правильном использовании двойных и одинарных кавычек в php. Перед тем, как начать писать пост, я бегло просмотрел имеющиеся у меня книги по php, и, что странно, ни в одной не увидел правильного использования кавычек. Почему – для меня загадка. Обвинять авторов в дилетантстве нет ни малейшей возможности, книги далеко не для «чайников». Может быть просто не хотели акцентировать на этом внимание, дескать кому надо, тот сам разберется.

Кавычки, что логично, бывают одинарными и двойными. Различие их использования в php заключается в следующем. Строку, заключенную в одинарные кавычки, интерпретатор php выводит как есть, заключенную же в двойные кавычки парсит на наличие в ней переменных и, найдя таковые, подставляет их значения.

Следовательно, если нам надо вывести текст «как есть», то используем одинарные кавычки. Если необходимо подставить вместо переменной ее значение – двойные (если переменная только одна, то кавычки можно и вовсе опустить). Часто можно встретить такой код:

Выводится просто текст. Но в коде он по какой-то неведомой причине заключен в двойные кавычки, что заставляет интерпретатор парсить его на наличие переменных. Правильным будет заключить текст в одинарные кавычки.

Рассмотрим тривиальную задачу вывода переменной в составе текста, в том числе и с использованием html кода.

$date"; ?>

Все выводится хорошо, текст и выделенная жирным дата, которая подставляется вместо переменной. Но необходимо помнить две вещи. Первое, это особенность интерпретатора: конкатенация строк происходим намного быстрее и требует меньше ресурсов, нежели синтаксический анализ строк. И второе — не стоит забывать про парадигму программирования «разделяй и властвуй». Не надо мешать все в одно, гораздо правильнее будет разделить текст на две части – требующую и не требующую парсинга интерпретатором. Таким образом, пример выше стоит записать так:

".$date.""; ?>

Естественно, следовать этому правилу (заключать все, что не требует парсинга, в одинарные кавычки) надо не только при выводе текста, но и при присвоении значений строковым переменным:

Или, например, при использовании строк при передаче аргументов функции:

И хотя на современных компьютерах выигрыш во времени интерпретирования кода в зависимости от использования одинарных или двойных кавычек будет фактически незаметен, особенно в небольших скриптах, стоит все-таки изначально приучать себя писать грамотный код, это намного легче, чем потом переучиваться.

Сегодня займёмся кавычками, но не простыми, а кавычками в PHP и плюс экранирование кавычек, варианты. Одинарная кавычка php? двойная кавычка php?

Начнем с того, что в PHP допускается применение и двойных кавычек и одинарных.

И есть несколько вариантов экранирования кавычек.

Навигация по странице:

    Где располагаются кавычки на английской клавиатуре?

  1. На клавиатуре в английской раскладке одинарная кавыча это строчная буква э -> "
    Двойная кавычка это ПРОПИСНАЯ буква Э -> "

    Php символ двойных и одинарных кавычек

  2. Естественно, что вам потребуется символ кавычек, т.е. если вам нужно вывести кавычку, но чтобы она не срабатывала, для этого и существуют символы кавычек.

    Символ двойных кавычек:

    "

    Символ одинарных кавычек:

    "

    Php экранирование кавычек.

  3. Что вы собственно подразумеваете под словами экранирование кавычек в php.

    Давайте разберем пример, ведь на примерах всегда легче понять о чем идет речь!

    Давайте напишем код php:

    echo "Кавычки php ";

    Но если мы вставим данный код сюда, то боюсь, что вы никогда бы не увидели данные строчки!?

    Почему? Да просто потому, что код не сработает -> снаружи и внутри двойные кавычки

    Ошибка экранирования кавычек php

  4. Отдельной ошибки для вывода ошибки экранирования кавычек нет, но результат такой ошибки приведен ниже:

    Специально для вас сделал , с вставленным в неё данным кодом, и если хотите то вы можете посмотреть, что из этого у вас получилось бы!
    Что данная ошибка нам говорит!?

    Parse error: syntax error, unexpected "http" (T_STRING), expecting "," or ";" in путь on line номер строки

    Синтаксическая ошибка(Parse error: syntax error), код нам говорит: unexpected - неожиданную херню часть строки вижу... http - это вовсе не то, что я ожидал увидеть...
    Там должно идти, либо присоединение, либо конец строки;

    Теперь по русски...

    Что после второй двойной кавычки идет какая-то фигня, которая там не должна быть! Т.е. мне дайте те символы которые мне нравятся... т.е. исходя из его требований...

    вот что он ожидает увидеть...

    echo "Кавычки php ";

    Естественно так никто не пишет, хотя...кто его знает...

    Если вы проделаете тоже самое с одинарными кавычками - то получите аналогичную ошибку экранирования кавычек!

    Как экранировать двойные кавычки в php

  5. В данном конкретном случае, как избавиться от ошибки и заэкранировать двойные кавычки!?

    Перед теми двойными кавычками, что расположены внутри, нужно поставить слеш, который смотрит влево:

    echo "Кавычки php ";

    Как экранировать одинарные кавычки в php

  6. Если предположим, у нас есть такая же строка, что приведена выше, но вместо двойных кавычек там одианрные, то поступаем аналогично - перед каждой кавычкой внутри ставим слеш влево.

    echo "Кавычки php ";

    Использовать разные кавычки вместо экранирования

  7. Вместо экранирования кавычек, можно использовать такой вариант - возьмем выше идущий код и поменяем внутри одинарные кавычки на двойные...

    echo ""Кавычки php"";

    Тоже самое можно сделать и с двойными кавычки, снаружи оставляем двойные, внутри одинарные...

    echo "Кавычки php ";

    Как вывести кавычки php на экран

  8. Для того, чтобы вывести кавычки на экран, прямо здесь на странице... и чтобы они не являлись кодом php – как бы странно это не звучало! Кавычки нужно поменять на html сущности, например:

    Одинарная кавычка через html код::

    " - одинарная кавычка « " »

    Двойная кавычка через html код:

    " - двойная кавычка « " »

    Такая кавычка будет выглядеть как кавычка на экране, но в коде Php уже участвовать не будет…

    Не правильные кавычки php

  9. Не правильные кавычки - как в том мультике - неправильные пчелы

    Ко всему коду PHP надо относиться внимательно! Если вы к примеру писали что-то в программе Word, какой-то текст, потом, в нем же начали делать код, как получилось у меня в первый раз.

    И я никак не мог понять в чем проблема – он реально мне не хотел показывать простой код. Я готов был сломать комп кувалдой!!!

    А оказалась, что кавычки в редакторе кода отличаются от Word. И это никак невозможно понять, если вы через это не прошли!

    Вот вам пример кавычек в Word-е.