2012-06-19 105 views
2

The fine manual美国这样的:我们什么时候应该对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 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中是禁用的。在安全模式的其他服务器上,我在SQL查询中使用了反引号,并且我不记得有任何问题。那么为什么手册有关双引号字符串反引号的警告?

回答

5

您正在阅读的部分称为“执行操作符”。因此,短语“与其他语言不同,反引号不能用于双引号字符串”意思是这样的:

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

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

+0

的结果感谢您澄清akond。 – dotancohen

相关问题