2012-06-20 43 views
2

這可能嗎?這個想法是有以下幾點:如何從字符串中創建條件語句

if ($some_statement) { ... } 

其中$ some_statement變量是一個字符串,它看起來像這樣:

$some_statement = ' $day == "Monday" && $weather == "sunny" '; 

我曾嘗試用大括號和eval函數一點點,但不能得到任何工作。謝謝你們,你們搖滾!

+2

字符串從哪裏來,是用戶輸入?它是可信的用戶輸入嗎? –

+0

很多人可能會覺得寫'if($ day ==「Monday」&& $ weather ==「sunny」)' – Esailija

+0

是的,用戶輸入不應該被評估。除非採取格柵護理。 –

回答

2

您可以使用eval,但請記住,字符串中的語句必須是完整的PHP語句。

$condition = 'return $day == "Monday" || $day == "Sunday";'; 
if (eval($condition)) { ... } 
+0

謝謝,我認爲沒有「迴歸」和「;」這是行不通的。在一個字符串的末尾! – user1470443

2
If (eval($some_statement)) { 

應該工作。

但是不要這麼做除非你知道你在做什麼,根據你的問題來判斷你不這樣做。

評估字符串中的代碼非常危險,並且很容易造成嚴重的安全漏洞。

+0

非常感謝你,是的,你是對的 - 我不知道我在做什麼:) – user1470443