2016-09-06 2 views
-2

내 Laravel 프로젝트에서 모든 조건이 작동하면 추가하려하지만 if(true == true)을 문자열로 확인하려고하면 오류가 발생합니다. 또한 true && true && true && truePHP에서 문자열의 조건이

내가 시도하는 경우 : true == false && true == false && true == true && true == true

if($this->checkConditions($c_operator, $c_value, $c_value_given)) { 
    $status = 'true'; 
} else { 
    $status = 'false'; 
} 

if(empty($run[$run_id]['query'])) { 
    $run[$run_id]['query'] = ''.$status.' '.$rule->connection; 
} else { 
    $run[$run_id]['query'] .= ' '.$status.' '.$rule->connection; 
} 

최종 응답 기능

if($r['query']) { 
    dump($r['query']); 
} else { 
    dump('error - '.$r['query']); 
} 

그것은 항상 덤프 dump($r['query']);

나는 또한 시도

은 문자열입니다 eval() 기능이지만 작동하지 않습니다.

누군가 가능할 수도 있습니다.

+0

... 무엇? 의사 코드 대신 실제 코드를 보여 주시겠습니까? – Epodax

+0

이 문제에 대한 자세한 정보를 제공해주십시오. – aslawin

+0

무엇을하려고하십니까? 'bool true'가'bool false' 인 지 2 번 확인합니다. 'bool true '와 동일'bool true' –

답변

4

문자열을 PHP와 같이 평가할 수 없습니다. eval() 함수 (docs : http://php.net/manual/en/function.eval.php)가 있습니다. 그러나 이것은 대개 절대적으로 끔찍한 생각입니다.

PHP에서 비어 있지 않은 문자열이 true로 평가됩니다. 그래서 부울 논리가 포함 된 것으로 보일지라도 코드는 항상 문자열을 덤프합니다. 평가는() 답 경우,

당신은 거의 확실 잘못된 질문을하고 :

편집 : 그 문서의 주석에서이 인용 인용에주의. 문자열이없는 빈과 "0" 또는 "null" 같지 않으면

if($string) 
{ 
    //...do something 
} 
else 
{ 
    //... do other thing 
} 

과 항상 true 부분으로 이동합니다 : -이 같은 문자열 경우 라스무스 러 도프는 BDFL PHP의

+0

다음과 같이 할 수 있습니까? if ($ array [ 'value1'] && $ array [ 'value2'] || $ array [ 'value3'])'데이터가 배열에 있다면? 변수에'&&'및'||'를 추가하여 if 조건이 가변적 일 수 있습니까? –

+0

이어야합니다. 나는 그것이 정말로 나쁜 습관이라고 생각하기 때문에 그것을 시도하지 않았다. –

0

당신은 일을하는 경우 if..else 건설 중.

관련 문제