2012-03-09 3 views
0

Создание ссылки в PHP:Как использовать одинарные кавычки в двойных кавычках в 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?

Working PHP 5.2.8.

+0

это не требуется, но это, как я предпочитаю делать то, что вы делаете: 'эхо«click here»,' – Shea

+0

Согласовано, таким образом, это яснее разграничение строки из переменных. – Manhim

+0

@andrewjackson - Я тоже так делал, но мне трудно читать и подвергать ошибкам. –

ответ

2

Включите переменные в {} вот так {$currentFile} и {$row['id']}.

1

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

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

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'] - целое число.

3

Если котировки запутаться, что они могут, попробовать Heredoc синтаксис:

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

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

PHP heredoc

Приветствие

0

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

например

echo '<a id="testlink" alt="blabla" href="test.php?somevar='.$xy.'">Test</a>'; 
Смежные вопросы