2012-06-20 4 views
2

이것은 모두 가능합니까? 아이디어는 다음과 같은 것입니다 :문자열에서 조건문을 만드는 방법

$의 some_statement 변수는 다음과 같습니다 문자열입니다
if ($some_statement) { ... } 

:

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

나는 중괄호와 eval 함수와 조금 실험을하지만,하지 수 일하게하십시오. 고마워, 너 락!

+2

문자열의 출처는 어디입니까? 사용자 입력입니까? 신뢰할 수있는 사용자 입력입니까? –

+0

많은 사람들이''($ day == "Monday"&& $ weather == "sunny")' – Esailija

+0

을 작성하는 것이 더 쉽다고 생각할 수 있습니다. 예, 사용자 입력을 평가해서는 안됩니다. 화격자 돌보는 것을하지 않는 한. –

답변

2

이 경우 eval을 사용할 수 있지만 문자열의 문은 완전한 PHP 문이어야합니다.

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

고마워, 나는 이것이 "return"과 ";"없이는 작동하지 않을 것이라고 생각한다. 끈 끝에서! – user1470443

2
If (eval($some_statement)) { 

작동합니다.

당신이하고있는 것을 알지 못한다면을하지 마십시오. 당신이하지 않는 질문으로 판단하십시오.

문자열에서 코드를 평가하는 것은 매우 위험하며 심각한 보안 구멍을 만들 수 있습니다.

+0

고맙습니다. 네, 맞습니다. - 내가 뭘하고 있는지 전혀 모르겠다. :) – user1470443

관련 문제