2013-05-16 4 views
0

다음 if 문을 클래스에 삽입하려하지만 예기치 않은 T_IF 오류가 발생했습니다.if 문을 HTML의 CSS 클래스에 삽입하십시오.

class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' " 

이게 가능하지 않습니까? 아니면 잘못하고 있습니까?

답변

0

if 문을 문자열에 연결할 수 없습니다.

$string = "123"; 
if ($bar) { 
    $string .= "456"; 
} 
$string .= "789"; 

나이 :

대신이 작업을 수행 할 수 있습니다

if ($bar) { 
    $baz = "456"; 
} else { 
    $baz = ""; 
} 
$string = "123" . $baz . "789"; 

또한, a ternary operator를 사용할 수를하지만 그것은 당신의 코드 모양을 만드는 위험 때문에 조건은, (상대적으로) 긴 경우 라인 노이즈와 같은 것입니다.

2

서버 쪽을 해석하기 위해 PHP 태그를 열어보세요.

class="color_icon_filter <?php if ($link_data['id']==$link_data['text']) {echo $active} ?>" 

편집

또는 당신은 if 문에서 CONCAT하려는

echo 'class="color_icon_filter '.($link_data['id']==$link_data['text'] ? $active : '').'"'; 
+0

은 질문에 예기치 않은 T_IF 오류가 발생하고 있습니다. 즉, 문제의 코드가 문자열 내부에서 시작한다는 의미입니다. 이미 공유 된 것을 변경하는 것 외에도 코드를 추가로 수정해야합니다. – Quentin

+0

예! 맞습니다. – Pouki

+0

대체 접근법은 형식 인 경우 terinary를 사용하는 것입니다.'($ link_data [ 'id'] == $ link_data [ 'text']? $ active : "in-active")' – Orangepill

0

당신은 PHP 태그에 이미 있다면.

해당 줄 앞에 에코가 있다고 가정합니다. sprintf (http://php.net/sprintf)로 변환하거나 echo 라인 앞에 if를 넣고 $ active 값을 설정 한 다음 변수 만 연결하면됩니다.

개인적으로 sprintf/printf가 더 나은 해결책이라고 생각합니다. if 문

+0

약간 코드는 여기에 먼 길을 간다. –

0

당신은 할당 작업의 중간에 사용할 수 없습니다,하지만 원하는 결과를 달성하는 방법이 있습니다 :

$active = ''; 
if ($link_data['id']==$link_data['text']) { 
    $active = 'active'; 
} 
$class = "color_icon_filter $active"; 

또는 삼항 연산자를 통해 짧은 방법 :

$active = ($link_data['id']==$link_data['text']) ? 'active' : ''; 
$class = "color_icon_filter $active"; 
+0

+1 이렇게 친절하게 설명했습니다. – NullPointer

관련 문제