我正在編寫一個程序,並在字符串內部有一些代碼。這段代碼在字符串外部沒有錯誤,但是,當我把它放在一個字符串中時,我得到這個錯誤。PHP字符串錯誤
解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在* 目錄和行號 *
發生錯誤就提前
$string = "if(isset($_POST['Submit']))";
感謝。
我正在編寫一個程序,並在字符串內部有一些代碼。這段代碼在字符串外部沒有錯誤,但是,當我把它放在一個字符串中時,我得到這個錯誤。PHP字符串錯誤
解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在* 目錄和行號 *
發生錯誤就提前
$string = "if(isset($_POST['Submit']))";
感謝。
使用單引號,而不是雙引號:
$string = 'if(isset($_POST[\'Submit\']))';
這樣,PHP就不會試圖插值裏面的$ _POST變量。否則,轉義$字符。
他們也必須逃避字符串中的引號。 – 2012-02-04 17:55:38
當然,已經編輯:) – Palantir 2012-02-04 17:56:02
你需要逃避$
:
$string = "if(isset(\$_POST['Submit']))";
[勞埃德@桌面〜] $ 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的確切字符串試圖解釋然後使用單引號。
爲什麼downvoting?對我來說,這似乎是一個合理的問題... – Palantir 2012-02-04 17:54:28
你能解釋一下你想要用你的代碼實際上做什麼嗎? – enam 2012-02-04 17:55:56