如何在单引号内使用单引号?

Posted

技术标签:

【中文标题】如何在单引号内使用单引号?【英文标题】:How do I use single quotes inside single quotes? 【发布时间】:2011-03-23 23:13:02 【问题描述】:

谁能解释一下如何使这段代码工作?

echo '<div id="panel1-under">Welcome <?php echo "$_SESSION['username']"; ?></div>';

我尝试删除单引号 (echo '&lt;div id="panel1-under"&gt;Welcome &lt;?php echo "$_SESSION[username]"; ?&gt;&lt;/div&gt;';),但它不起作用。

【问题讨论】:

【参考方案1】:
echo "<div id=\"panel1-under\">Welcome ".$_SESSION['username']."</div>";

echo '<div id="panel1-under">Welcome '.$_SESSION['username'].'</div>';

快速解释:

您不必重新打开 echo String (" ... ") 中的标签 我在这里所做的是将字符串 "Welcome " 连接到 $_SESSION['username']"" ( . 运算符的作用)

PHP 甚至足够聪明,可以检测 PHP 字符串中的变量并对其进行评估:

$variablename = "安德鲁";

echo "Hello $variablename, 欢迎";

=>你好安德鲁,欢迎

更多信息:PHP.net - echo

【讨论】:

如果字符串在双引号或 Heredoc 中,PHP 将替换 PHP 字符串中的变量。这是一个重要的区别。 +1 示例中是这样,但我没有明确提及!谢谢 echo "&lt;div id=\"panel1-under\"&gt;Welcome $_SESSION['username']&lt;/div&gt;"; 应该也可以吗?【参考方案2】:

在单引号内,变量名不会像在双引号内那样被解析。如果您想在此处使用单引号字符串,则需要使用 字符串连接 运算符,.:

echo '<div id="panel1-under">Welcome <?php echo "'.$_SESSION['username'].'"; ?></div>';

顺便说一句:标题中问题的答案是,为了在单引号字符串中使用文字单引号,您可以使用反斜杠转义单引号:

echo 'Here is a single-quote: \'';

【讨论】:

【参考方案3】:

你需要连接你的字符串和变量。

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>';

【讨论】:

【参考方案4】:

变量扩展在单引号内不起作用。你可以这样做:

echo "<div id=\"panel1-under\">Welcome $_SESSION['username']</div>";

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>';

【讨论】:

酷! +1。我不知道你可以像在第一个示例中那样使用关联数组,我怀疑它是否有效,我自己测试过它确实有效,尽管我可能永远不会那样使用它...... 第一个例子会弹出一个警告,比如“未定义的常量'用户名',假设是'用户名'”。最好使用括号语法:`echo "Welcome $_SESSION['username']"; 方法也是在双引号字符串中插入多维数组的子维度的唯一方法。 echo "$a[b][c]" 将输出等价于 $a[b] . "[c]" (类似于 'Array[c]'),因为 PHP 的解析器对维度引用并不贪婪。【参考方案5】:

一般来说,要在使用单引号作为分隔符的字符串中使用单引号,您只需将字符串中的单引号转义即可。

echo 'That\'s all, folks';

不过,尚不清楚您的代码的目的是什么。

echo '<div id="panel1-under">Welcome <?php echo "$_SESSION['username']"; ?></div>';

由于您已经在使用 PHP 代码,所以不需要&lt;?php echo。如果您尝试输出会话变量的内容,可以使用以下代码。

echo '<div id="panel1-under">Welcome ' . $_SESSION['username'] . '</div>';

【讨论】:

【参考方案6】:

使用以下代码

$data = $session['user'];
echo "a big string and $data   thats simple"

【讨论】:

它如何回答How to use single quotes inside single quotes?的问题?【参考方案7】:

双引号内可以使用双引号或单引号。

#Result: Hello "World" 's
$a = '"World"';   
echo "Hello $a 's";

#Result: Hello "World" 's    
echo "Hello \"World\" 's";

您还可以在单​​引号内使用双引号或单引号。 (构建 SQL 查询时不推荐)

#Result: Hello World's "s
echo 'Hello World\'s "s';

【讨论】:

以上是关于如何在单引号内使用单引号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单引号字符串中使用变量?

正则表达式在单引号内转义双引号

如何在单引号 php 中使用单引号?

如何在单引号字符串中转义单引号

使用 Jackson/Java 来确保 JSON 的所有序列化在单引号或双引号内分隔不受信任的数据会转义任何特殊字符?

雷林鹏分享:Ruby 字符串(String)