Как использовать одинарные кавычки в двойных кавычках в PHP? - PullRequest
0 голосов
/ 09 марта 2012

Создание ссылки в PHP:

echo "<a href=\"$currentFile?rowID=$row['id']\">click here</a>";

Это выдает ошибку: Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING'. Как ты можешь это сделать?

Кроме того, смешивание одинарных и двойных кавычек и экранирование двойных кавычек снижает читабельность и всегда приводит к ошибкам. Есть ли лучший способ создания цитат с другим синтаксисом, например% Q () в Ruby?

Рабочий PHP 5.2.8.

Ответы [ 6 ]

4 голосов
/ 09 марта 2012

Проблема в интерполяции переменных вашего массива.Синтаксис:

"$row[id]"

или

"{$row['id']}"

Итак:

"<a href=\"$currentFile?rowID=$row[id]\">click here</a>"

См. http://php.net/manual/en/language.types.string.php#language.types.string.parsing.

3 голосов
/ 09 марта 2012

Если кавычки сбивают с толку, что может, попробуйте синтаксис heredoc:

echo <<< END_HTML
    <a href="$currentFile?rowID=$row[id]">click here</a>
END_HTML;

... просто убедитесь, что END_HTML; находится на отдельной строке безотступ и отсутствие пробелов.Здесь Хередок излишний.Но для больших блоков HTML с большим количеством переменных это может быть намного проще, чем везде экранировать кавычки.

PHP heredoc

Cheers

2 голосов
/ 09 марта 2012

sprintf - ваш друг для сложных строк с переменными:

http://php.net/manual/en/function.sprintf.php

echo sprintf('<a href="%s?rowID=%d">click here</a>', $currentFile, $row['id']);

Здесь я предполагаю, что $ currentFile является строкой (вы можете дополнительно манипулировать строкой, возможно, сurlencode) и $ row ['id'] - это целое число.

2 голосов
/ 09 марта 2012

Заключите переменные в {} следующим образом {$currentFile} и {$row['id']}.

1 голос
/ 09 марта 2012

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

echo "<a href=\"$currentFile?rowID=$row[id]\">click here</a>";
0 голосов
/ 28 марта 2012

Для ясности предлагаю вам выводить HTML-код в одинарных кавычках, а их теги - в двойных.Когда кто-то просматривает ваш код, тонна кавычек делает его сложным.

например

echo '<a id="testlink" alt="blabla" href="test.php?somevar='.$xy.'">Test</a>';
...