1

我有这个字符串内容的数据库:

[$3] [$ 3] [$3.2]

需要按原样回应它。

当尝试回显时

echo "[$3] [$ 3] [$3.2]";

明白啦:

[] [$ 3] [.2]

尝试了 urlencode、htmlspecialchars,但没有成功。

我如何回声并得到这个?

[$3] [$ 3] [$3.2]

编辑:

单引号没有给出想要的结果。

echo '[$3] [$ 3] [$3.2]';

[] [$ 3] [.2]

我的 php 版本是 5.2.14,我正在使用 Joomla。

编辑2:

我想通了,它不能使用单引号的原因是因为 Joomla + Jumi。如果我使用纯 php - 它可以正常工作。

4

3 回答 3

6

如果您不希望对变量值进行插值,请使用单引号。

PHP 手册

注意:与双引号和heredoc 语法不同,特殊字符的变量和转义序列在出现在单引号字符串中时不会被扩展。

echo '[$3] [$ 3] [$3.2]';

对于这种特殊情况,引号无关紧要,因为 PHP 变量不能以数字开头。

例如:

echo '[$3] [$ 3] [$3.2]'; // single-quoted

将具有与以下相同的效果:

echo "[$3] [$ 3] [$3.2]"; // double-quoted

两者都应该输出:

[$3] [$ 3] [$3.2]

但是,对于有效变量,上述规则适用。

例子:

$var = 'foo';
$string = 'this is a string with $var';
echo $string;

输出:

this is a string with $var

演示!

于 2013-09-18T20:46:54.320 回答
1

在双引号内,PHP 将以 a 开头的任何内容解释$为变量,并尝试输出$3.

当您不想要这种行为时,只需使用单引号:

echo '[$3] [$ 3] [$3.2]';
于 2013-09-18T20:47:17.040 回答
1

单引号字符串中没有变量被解释。双引号字符串可以。

此外,双引号字符串可以包含不带反斜杠的撇号,而单引号字符串可以包含未转义的引号。

单引号字符串在运行时速度更快,因为它们不需要被解析。

试试这个

 echo '[$3] [$ 3] [$3.2]';

详细信息在这里http://php.net/manual/en/language.types.string.php

于 2013-09-18T20:47:48.090 回答