PHP $ var kullanarak = <<<

3 Cevap

Güncelleniyor:

Php EOM ötesinde kodu düşünüyor; Kapanış etiketi.

İşte benim komut dosyası yapılandırılmıştır nasıl:

<?php
switch($x){

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

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

}
?>

Ve komut sadece EOM sonra erro veriyor;

Eski:

Ben aşağıdaki kodu kullanıyorum.

$var = <<< EOM

... some html ...

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

EOM;>

ama aşağıdaki hata ile başarısız

Ayrıştırma hatası: sözdizimi hatası, beklenmedik '"' bekliyor T_STRING veya T_VARIABLE veya C T_NUM_STRING: \ Apache \ htdocs \ ANCP \ adm \ adm_functions.php on line 132

$ row ['dinicio'] kaldırarak sorunu çözer. ama bu alanda ihtiyaç

Herhangi bir fikir?

Edit:

Daha fazla referans bir daha 'tam' bölümü için:

<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 Cevap

Bir Yorumlu metin ortasında PHP içine kaçamaz (<<< EOM ... EOM, blok) - bu sadece bir dize olması gerekiyordu.

sadece düz ekran dışarı Bu yankılanan eğer, o zaman böyle bir şey yapın:

...
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;
...

denemek

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

ve daha fazla boşluk kullanarak: D

İşte kod temizlenmiş versiyonu:

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