这是在PHP中转义引号的正确方法吗?

时间:2014-02-17 01:02:01

标签: php string escaping

我正在写一个laravel控制器,如果它在这里是相关的。

"\"$alias\""

这里我在别名中传递变量,我想用双引号括起来。

"\"remote\""

在这里,我只想传递用双引号括起来的远程词。

不确定我是否正确执行此操作,或者是否有更好的方法。

对于没有变量的那些,'"remote"'是实现我想要的更好的方法吗?

再次感谢!

2 个答案:

答案 0 :(得分:2)

echo "The value is \"$value\"";

echo 'The value is "'.$value.'"';

在用双引号显示变量时都是完全有效的。


echo "The word is \"bird\"";

echo 'The word is "bird"';

在双引号中显示常量短语都非常有效。


请记住,变量不会在单引号字符串中解析,因此echo 'The value is $value';将不起作用。

答案 1 :(得分:-1)

上述内容不完整且不正确,不必使用括号。

没有多少人知道如何使用PHP正确使用和输出字符串。使用内联字符串,heredoc和nowdoc正确执行。以下内容可能不完整,请查看http://uk3.php.net/manual/en/language.types.string.php上的PHP文档以获取更多信息。

单引号(文字)将输出您在它们之间输入的内容,并且不能包含转义字符或变量:

$a=1;
echo' "Double quoted" $a © ';
//Output: "Double quoted" $a ©

双引号(内联)可以包含变量,转义字符等。

$a=1;
echo" 'Single quoted' $a © \" escaped";
//Output: 'Single quoted' 1 © " escaped

内联索引变量:

echo "Index 2 of myvar: $myvar[2]";
echo "Index a of myvar: {$myvar['a']}";

Heredoc :(基本上是多线双引号)

echo<<<myeot  //Start heredoc
'Single quoted text'
"Double quoted text"
The value of a is $a
The value of b[index] is {$b['index']}
myeot;       //end heredoc

还可以使用heredoc和nowdoc定义变量:

$str=<<<myeot
xxx
Number $a will output
yyy
myeot;

Nowdoc与heredoc非常相似,但仅受PHP 5.3.0及更高版本的支持。