2011-03-28 6 views
1

저는 지금 약간 혼란 스럽습니다. 이 코드를 가지고 :임베디드 PHP는 멈출 수 없습니까?

<?php $this->head(?> 
    <style type="text/css"> 
     .error { 
      background-color: #ccc; 
      border: 1px solid #999; 
      padding: 10px; 
      width: 500px; 
     } 
    </style> 
<?php); ?> 

나는 당신이 이것을 할 수 있다고 확신했다.

<?php if (true) { ?> 
    Hei 
<?php } ?> 

사실 오류가 발생합니다 :

Parse error: syntax error, unexpected ';', expecting ')' in file.php on line 1 (line 1 of the code)

어떻게 내가 더 잘 해결할 수 그것은 꽤 비슷?

+1

PHP 단축 태그를 사용하도록 설정 했습니까? – diagonalbatman

+1

성취하려는 것은 무엇입니까? 이것은 조건문이되어야합니까? 아니면 $ this-> head에 값을 할당하려고합니까? –

답변

10

html을 변수로 전달하려는 경우 heredoc을 사용하십시오.

$var = <<<HTML 
    <style type="text/css"> 
    .error { 
     background-color: #ccc; 
     border: 1px solid #999; 
     padding: 10px; 
     width: 500px; 
    } 
    </style> 
HTML; 

$this->head($var); 

이 작업을 수행 할 수 없습니다

$variable = ?> <p>omgwtfbbq</p> <?; 

그게 전부는 유효한 구문이 아닙니다.

INSEAD, 당신은 당신은 PHP로 HEREDOC 구문을 사용할 수 있습니다

$variable = "<p>omgwtfbbq</p>"; 
+0

@ Briedis, HEREDOC을 피해야하는 이유가 있습니까? 나는 HEREDOC이 악의적 인 무엇인가를 읽었을 것이라고 확신한다. 그렇지 않습니까? 아니면 단서없이 사용할 수 있습니까? – Shoe

+2

실제로 실제 프로젝트에서는 heredoc을 사용하지 않았습니다. 사용하려고 할 때 구문을 기억할 수 없습니다. 대신 따옴표로 사용합니다. :) 악의적 인 것에 대해 모르겠지만 몇 가지 단점이 있습니다. 편집 : 일부 파고 않았다 그리고 여기에 몇 가지 [장단점] (http://aaronsaray.com/blog/2008/09/08/heredoc-time-for-dead-dead-or-happy-smile-time/) –

+0

@ 브리 디스, 아무 것도 풀지 못했습니다. 내 편집기의 구문 강조 표시는 문자열로 계속 표시됩니다. 어쨌든 고마워. – Shoe

1

따옴표 (단일 또는 이중)과 그것을 둘러싸고 있습니다.

2

여러 줄 문자로 HEREDOC을 사용하십시오.

<?php 
$style = <<<EOS 

    <style type="text/css"> 
     .error { 
      background-color: #ccc; 
      border: 1px solid #999; 
      padding: 10px; 
      width: 500px; 
     } 
    </style> 
EOS; 
$this->head($style); 
?>