PHP使用$ var =<<< EOM

时间:2009-12-09 21:43:26

标签: php

更新

php正在考虑超越EOM的代码;关闭标签。

以下是我的脚本的结构:

<?php
switch($x){

case "a":
$var = <<< EOM;
...the html...
EOM;
break;

case "b":
...some code...
break;

}
?>

脚本正在EOM之后提供erro;

旧:

我正在使用以下代码。

$var = <<< EOM

... some html ...

<?php 
if (date("j",strtotime($row["dinicio"]))==$i){echo "selected='selected'";}
?>

EOM;>

但失败并出现以下错误

解析错误:语法错误,意外''',期待第132行的C:\ Apache \ htdocs \ ancp \ adm \ adm_functions.php中的T_STRING或T_VARIABLE或T_NUM_STRING

删除$ row ['dinicio']解决了这个问题。但我需要这个领域

有什么想法吗?

编辑:

这里有更多“完整”细分:

<select id="ddia" name="ddia" class="form-normal">
            <option value="-1">dia</option>
            <?php
                for ($i=1; $i<32; $i++){
                    echo "<option value='";
                    echo ($i<10)?"0":"";
                    echo "$i' ";
                    if (date("j",strtotime($row["dinicio"]))==$i){echo "selected='selected'";}
                    echo ">$i</option>\n";
                }
            ?>
        </select>

3 个答案:

答案 0 :(得分:1)

if (date("j",strtotime({$row["dinicio"]}))==$i){echo "selected='selected'";}

并使用更多空格:D

答案 1 :(得分:1)

你无法在HEREDOC(&lt;&lt;&lt;&lt;&EOM; EOM;块)中间逃到PHP中 - 它应该只是一个字符串。

如果您只是直接回显到屏幕上,那么请执行以下操作:

...
switch($x){

  case "a":
  ?>
  <select id="ddia" name="ddia" class="form-normal">
    <option value="-1">dia</option>
    <?php $j = date('j', strtotime($row["dinicio"])); ?>
    <?php for($i = 1; $i <= 31; $i++): ?>
      <option value="<?php echo str_pad($i, 0, 2, STR_PAD_LEFT); ?>"<?php if($j == $i) echo ' selected="selected"'; ?>>
        <?php echo $i; ?>
      </option>
    <?php endfor; ?>
  </select>
  <?php
  break;
...

答案 2 :(得分:0)

以下是您的代码的清理版本:

<select id="ddia" name="ddia" class="form-normal">
        <option value="-1">dia</option>
        <?php $j = date('j', strtotime($row["dinicio"]));
        for($i = 1; $i <= 31; $i++): ?>
        <option value="<?php echo str_pad($i, 0, 2, STR_PAD_LEFT); ?>"<?php if($j == $i) echo ' selected="selected"'; ?>>
            <?php echo $i; ?>
        </option>
        <?php endfor; ?>
</select>