什么时候我们应该警惕PHP中的反引号?

时间:2012-06-19 10:14:03

标签: php

因此,

The fine manual州:

  

与其他一些语言不同,反引号不能在双引号字符串中使用。

然而,经验测试没有发现任何问题:

$ cat test.php 
#!/usr/bin/php -q
<?php
echo "O`reilly\n";
echo `ls`;
echo "\n";
?>

$ ./test.php 
O`reilly
test.php

$ php --version
PHP 5.3.6-13ubuntu3.7 with Suhosin-Patch (cli) (built: May  4 2012 00:50:06) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
    with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

由于ls行中的反引号,显然安全模式已关闭,我发现在php.ini中禁用了sage模式。在其他具有安全模式的服务器上,我在SQL查询中使用了反引号,我不记得有过问题。那么为什么手册中有关于双引号字符串反引号的警告呢?

1 个答案:

答案 0 :(得分:5)

您正在阅读的部分称为“执行操作员”。因此,短语“与其他一些语言不同,反引号不能在双引号字符串中使用”意味着:

您不能在双引号字符串中使用反引号作为执行运算符。

即。 echo“`ls`”;输出`ls`,而不是ls

的结果