php вставка переменной в строку

Строки

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

Синтаксис

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

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

Замечание: В PHP 3 в данном случае будет выдано сообщение уровня E_NOTICE.

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

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

Если строка заключена в двойные кавычки («), PHP распознает большее количество управляющих последовательностей для специальных символов:

Таблица 11-1. Управляющие последовательности

последовательностьзначение
\nновая строка (LF или 0x0A (10) в ASCII)
\rвозврат каретки (CR или 0x0D (13) в ASCII)
\tгоризонтальная табуляция (HT или 0x09 (9) в ASCII)
\\обратная косая черта
\$знак доллара
двойная кавычка
\4

последовательность символов, соответствующая регулярному выражению, символ в восьмеричной системе счисления
\x[0-9A-Fa-f]

последовательность символов, соответствующая регулярному выражению, символ в шестнадцатеричной системе счисления

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

Но самым важным свойством строк в двойных кавычках является обработка переменных. Смотрите более подробно: обработка строк.

Heredoc

Источник

PHP: Строки

Значениями типа string являются текстовые строки (кратко строки). Строка — это последовательность из нуля или более символов. Символы включают в себя буквы, цифры, знаки пунктуации, специальные символы и пробелы.

Строка может быть определена четырьмя различными способами:

Строка в двойных кавычках

Строка в двойных кавычках:

В строках с двойными кавычками можно использовать управляющие последовательности. Управляющая последовательность — это специальные символы предназначенные для форматирования текстового вывода. В PHP доступны следующие управляющие последовательности:

ПоследовательностьЗначение
\nПеревод на новую строку (шестнадцатеричный код 0A).
\tГоризонтальная табуляция (шестнадцатеричный код 09).
\\Обратная косая черта (обратный слэш).
\$Знак доллара.
Двойная кавычка.
\xXXСимвол, заданный одной или двумя шестнадцатеричными цифрами.

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

Строки, заключённые в двойные кавычки, могут содержать символы одинарных кавычек:

Строка в одинарных кавычках (апострофах)

Строка в одинарных кавычках:

В отличие от строк в двойных кавычках и heredoc-синтаксиса, переменные и управляющие последовательности (за одним исключением), заключённые в одинарные кавычки, не обрабатываются. Это означает, что они будут интерпретированы как обычные символы строки:

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

Строки, заключённые в одинарные кавычки, могут содержать символы двойных кавычек:

Heredoc-синтаксис

Heredoc-синтаксис — это альтернативный способ записи строк.

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

Nowdoc-синтаксис

Nowdoc-синтаксис также как и Heredoc является альтернативным способом записи строк.

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

Синтаксис Nowdoc похож на Heredoc с той лишь разницей, что открывающий идентификатор обязательно должен быть заключён в одинарные кавычки:

Обработка переменных в строках

Существует два типа синтаксиса обработки переменных в строках: простой и сложный.

Простой синтаксис — это когда имя переменной указывается в строке как есть.

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

Сложный синтаксис — это когда имя переменной заключается в фигурные скобки.

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

Чтобы явно указать интерпретатору, где оканчивается имя переменной требуется заключить имя переменной в фигурные скобки:

Знак доллара может быть расположен как перед фигурной скобкой, так и после неё:

Конкатенация

Значение любого типа, которое объединяется со строкой, будет неявно преобразовано в строку и далее будет произведена конкатенация:

Источник

PHP-конкатенация или прямая вставка переменных в строку

мне интересно, каков правильный способ вставки переменных PHP в строку?

таким образом:

или так:

11 ответов

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

лично я бы пошел с вашим вторым решением в таком случае (переменной интерполяции), который мне легче писать и читать.

Как sidenote, поэтому мой ответ немного более полный: день, который вы захотите сделать что-то вроде этого:—7—>

в этот день, вам нужно использовать <> :

нет необходимости использовать конкатенации.

Также обратите внимание, что ваш первый синтаксис:

может быть оптимизация, избегая конкатенации, используя:

(но, как я уже сказал раньше это не имело большого значения. )

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

однако, если вам нужно вставить возвращаемое значение функции, это не может быть вставлено в строку с двойными кавычками-даже если вы окружаете ее фигурными скобками!

подойдет любой. Используйте тот, который имеет лучшую видимость для вас. И говоря о видимости вы также можете проверить printf.

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

использование встроенных vars в двойных кавычках может привести к сложным и запутанным ситуациям, когда вы хотите внедрить свойства объекта, многозначные массивы и т. д. То есть, как правило, при чтении встроенных vars вы не можете быть мгновенно на 100% уверены в окончательном поведение того, что Вы читаете.

AFAIK, вы не можете вставлять константы.

В некоторых конкретные случаи, «двойные кавычки с встраиванием vars» могут быть полезны, но вообще говоря, я бы пошел на объединение (используя одинарные или двойные кавычки, когда удобно)

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

начиная с php4 вы можете использовать форматер строк:

пойти с первым и использовать одинарные кавычки!

вы также должны проверить PHP конкатенация переменных, phpbench.com для некоторых критериев по различным методам работы.

Это только вопрос вкуса.
Используйте все, что пожелаете.

большую часть времени я использую второй, но это зависит.

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

не сцепить. Это не нужно, запятые США, поскольку echo может принимать несколько параметров

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

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

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

Я не понимаю, почему этот ответ в приведенной выше ссылке Получить upvoted и почему этот ответ получил downvote.

Как я сказал то же самое.

вы также можете посмотреть здесь

я знаю, что это старый вопрос, но я думаю, что кто-то должен упомянуть все плюсы и минусы:

Лучше Синтаксис: это личное предпочтение.

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

читабельности: нет разницы (может применяться личное предпочтение).

Права На Запись/Восстановление Права На Запись/Отладки: в 1-строчных операторах нет разницы, но при работе с несколькими строками легче комментировать / раскомментировать строки во время отладки или записи. Для пример:

Меньше Изменений: одинарная кавычка. Например, если у вас есть следующий код:

но для двойной цитаты вам нужно будет изменить это:

вывод: использовать то, что вы предпочитаете.

Источник

PHP-конкатенация или прямая вставка переменных в строку

мне интересно, Как правильно вставлять переменные PHP в строку?

таким образом:

или так:

11 ответов:

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

лично я бы пошел с вашим вторым решением в таком случае (переменной интерполяции), который я нахожу легче как писать, так и читать.

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

в этот день, вам нужно использовать <> :

нет необходимости использовать конкатенации.

Также обратите внимание, что ваш первый синтаксис:

может быть оптимизация, избегая конкатенации, используя:

(но, как я уже сказал раньше это не имело большого значения. )

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

однако, если вам нужно вставить возвращаемое значение функции, это не может быть вставлено в строку с двойными кавычками-даже если вы окружаете ее фигурными скобками!

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

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

использование встроенных vars в двойных кавычках может привести к сложным и запутанным ситуациям, когда вы хотите внедрить свойства объекта, многомерные массивы и т. д. То есть, как правило, при чтении встроенных vars вы не можете быть мгновенно на 100% уверены в финале поведение того, что Вы читаете.

AFAIK, вы не можете вставлять константы.

В некоторых конкретные случаи, «двойные кавычки с вложением vars» могут быть полезны, но, вообще говоря, я бы пошел на объединение (используя одинарные или двойные кавычки, когда удобно)

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

начиная с php4 вы можете использовать строковый форматер:

пойти с первым и использовать одинарные кавычки!

вы также должны проверить PHP переменная конкатенация, phpbench.com для некоторых тестов по различным методам выполнения вещей.

Это только дело вкуса.
Используйте все, что пожелаете.

большую часть времени я использую второй, но это зависит.

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

не сцепить. Это не нужно, запятые США, как эхо может принимать несколько параметров

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

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

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

Я не понимаю, почему этот ответ в ссылке выше получить upvoted и почему этот ответ получил downvote.

Как я уже сказал то же самое.

вы можете посмотреть здесь также

я знаю, что это старый вопрос, но я думаю, что кто-то должен упомянуть все плюсы и минусы:

Лучше Синтаксис: это личные предпочтения.

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

читабельности: нет разницы (могут применяться личные предпочтения).

Права На Запись/Восстановление Права На Запись/Отладки: в 1-строчных операторах нет никакой разницы, но при работе с несколькими строками легче комментировать/раскомментировать строки во время отладки или записи. Для пример:

Меньше Изменений: одинарная кавычка. Например, если у вас есть следующий код:

но для двойной кавычки, вам нужно будет изменить это:

вывод:использовать то, что вы предпочитаете.

Источник

PHP — объединение или прямая вставка переменных в строку

Мне интересно, как правильно вставлять переменные PHP в строку?

Оба этих метода работают в моем PHP v5.3.5. Последний короче и проще, но я не уверен, что первый лучше форматируется или воспринимается как более правильный.

Ответ 1

Между этими двумя синтаксисами вы должны выбрать тот, который вам больше нравится 🙂 Лично я бы выбрал второе решение ( п еременная интерполяция), которое я нахожу более простым как для записи, так и для чтения.

Результат будет тот же самый; и даже если есть последствия для производительности, они не будут иметь значения. В качестве примечания, чтобы мой ответ был немного более полным:

Нет необходимости возвращаться к конкатенации. Также обратите внимание, что ваш первый синтаксис:

Возможно, его можно оптимизировать, избегая конкатенации, используя:

Ответ 2

Строки с двойными кавычками более элегантны, поскольку вам не нужно разбивать строку каждый раз, когда вам нужно вставить переменную (как это нужно делать со строками с одинарными кавычками). Однако, если вам нужно вставить возвращаемое значение функции, его нельзя вставить в строку с двойными кавычками — даже если вы окружите его скобками!

Ответ 3

$format = ‘можете ли вы произнести %d раз, слово %s ‘;

Ответ 4

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

Использование встроенных параметров в двойных кавычках может привести к сложным и запутанным ситуациям, когда вы хотите встроить свойства объектов, многомерные массивы и т. д. То есть обычно при чтении встроенных переменных вы не можете быть на 100% уверены в конечном поведении того, что вы читаете.

Часто приходится использовать такие костыли, как <> и \, что вносит путаницу и делает читаемость конкатенации почти эквивалентной, если не лучше.

Как только вам нужно обернуть вызов функции вокруг var, например, htmlspecialchars($var), вы должны перейти на конкатенацию. Также вы не можете встраивать константы.

В некоторых специфических случаях «двойные кавычки со вставкой vars» могут быть полезны, но в целом я бы выбрал конкатенацию (используя одинарные или двойные кавычки, когда это удобно).

Ответ 5

Выбирайте первое и используйте одинарные кавычки!

Это легче читать, а значит, другие программисты будут знать, что происходит.

Это работает немного быстрее, так как опкоды создаются, когда PHP разбирает ваш исходный код, но в любом случае он это сделает, так что протяните ему руку помощи!

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

Единственная ситуация, когда вы должны использовать двойные кавычки, — это когда вам нужны \r, \n, \t! В других случаях использование двойных кавычек не стоит того.

Вы также должны проверить PHP конкатенацию переменных, используя phpbench.com для некоторых сравнительных тестов различных методов.

Ответ 6

Если вы хотите выполнить команду SQL, а ваши переменные являются членами массива, то вы не должны использовать одинарные кавычки внутри [] массива (как здесь: [»]); например, если вы используете эту строку в качестве команды SQL, вы получите серверную ошибку 500:

$con = mysqli_connect(‘ServerName’, ‘dbUsername’, ‘dbPassword’);

$sql = «INSERT INTO sampleTable (ID, TraceNo) VALUES (»,’$sampleArray[‘TraceNo’]’)»;

$sql = «INSERT INTO sampleTable (ID, TraceNo) VALUES (»,’$sampleArray[TraceNo]’)»;

Ответ 7

Я знаю, что это старый вопрос, но я думаю, что кто-то должен упомянуть все плюсы и минусы:

Лучший синтаксис: Это личное предпочтение.

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

Читабельность: Нет разницы (возможно, это личные предпочтения).

Меньше escape-последовательностей: Одинарная кавычка. Для одинарной кавычки нужно экранировать только 2 символа (‘ и \). Для двойной кавычки нужно экранировать 2 символа («, \) и еще 3, если требуется ($, < и >).

Меньше изменений: Одинарная кавычка. Например, если у вас есть следующий код:

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

Заключение: Используйте то, что вам больше нравится.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *