2012-02-04 36 views
-1

我正在编写一个程序,并在字符串内部有一些代码。这段代码在字符串外部没有错误,但是,当我把它放在一个字符串中时,我得到这个错误。PHP字符串错误

解析错误:语法错误,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在* 目录和行号 *

发生错误就提前

$string = "if(isset($_POST['Submit']))"; 

感谢。

+0

为什么downvoting?对我来说,这似乎是一个合理的问题... – Palantir 2012-02-04 17:54:28

+0

你能解释一下你想要用你的代码实际上做什么吗? – enam 2012-02-04 17:55:56

回答

2

使用单引号,而不是双引号:

$string = 'if(isset($_POST[\'Submit\']))'; 

这样,PHP就不会试图插值里面的$ _POST变量。否则,转义$字符。

+0

他们也必须逃避字符串中的引号。 – 2012-02-04 17:55:38

+0

当然,已经编辑:) – Palantir 2012-02-04 17:56:02

2

你需要逃避$

$string = "if(isset(\$_POST['Submit']))"; 
0

[劳埃德@桌面〜] $ PHP -a 交互shell

PHP> $字符串=“如果(isset($ _ POST [ '提交' ]))“; PHP解析错误:语法错误,意想不到T_ENCAPSED_AND_WHITESPACE,上线期待T_STRING或T_VARIABLE或T_NUM_STRING在PHP壳代码1

PHP> $字符串= “如果(isset(\ $ _ POST [ '提交']))”;如果(isset({$ _POST ['Submit']}))“;} if(isset({$ _ POST ['Submit']})”;

PHP说明:未定义指数:提交在PHP壳代码在第1行 PHP堆栈跟踪: PHP 1 {主}()PHP壳代码:0

PHP>

您需要因为PHP试图解析字符串,因此它使用双引号。如果你想要没有PHP的确切字符串试图解释然后使用单引号。