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

什么时候我们应该警惕PHP中的反勾号?,php,Php,因此,各国: 与其他一些语言不同,反勾号不能在双引号字符串中使用 但是,实证测试没有发现任何问题: $ 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

因此,各国:

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

但是,实证测试没有发现任何问题:

$ 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
$cat test.php
#!/usr/bin/php-q
$./test.php
奥雷利
test.php
$php——版本
PHP 5.3.6-13ubuntu3.7和Suhosin补丁(cli)(构建日期:2012年5月4日00:50:06)
版权所有(c)1997-2011 PHP集团
Zend Engine v2.3.0版权所有(c)1998-2011 Zend Technologies
Xdebug v2.1.0版权所有(c)2002-2010,作者:德里克·雷特汉斯

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

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

不能将双引号字符串中的反勾号用作执行运算符


i、 e.回声“`ls`”;输出'ls',而不是
ls

的结果。感谢您澄清akond。