精细手册这样说:
与其他一些语言不同,反引号不能在双引号字符串中使用。
但是,实证检验没有发现任何问题:
$ 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查询中使用了反引号,我不记得曾经遇到过问题。那么,为什么手册中有关于双引号字符串中的反引号的警告呢?
您
正在阅读的称为"执行运算符"的部分。因此,短语"与其他一些语言不同,反引号不能在双引号字符串中使用"的意思是:
不能在双引号字符串中使用反引号作为执行运算符。
即回显"ls";输出'ls',而不是ls
的结果