更新
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>
答案 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>