2012-02-04 49 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的確切字符串試圖解釋然後使用單引號。