Встроенный PHP, не может остановиться? - PullRequest
1 голос
/ 28 марта 2011

Я сейчас немного запутался.У меня есть этот код:

<?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 } ?>

На самом деле происходит ошибка:

Ошибка разбора: синтаксическая ошибка, неожиданное ';', ожидание ')' в file.php в строке1 (строка 1 кода)

Как мне лучше это исправить?

Ответы [ 3 ]

10 голосов
/ 28 марта 2011

Если вы пытаетесь передать 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, вы можете заключить его в кавычки (одинарные или двойные)

$variable = "<p>omgwtfbbq</p>";
2 голосов
/ 28 марта 2011

Используйте 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);
?>
1 голос
/ 28 марта 2011

Вы можете использовать HEREDOC синтаксис с php.

...