Neden benim editörüm benim PHP kodu tüm vurgulayarak değil mi?

5 Cevap php

Benim kod editörü olarak, normalde kalın mavi baskı PHP kodu görüntüler. Ben kodumu bazıları gibi kalın mavi baskı gösterilmesini buluyorum. Birisi aşağıda koduna bakmak ve ben yanlış bir şey yapıyorum bana söyleyebilir misiniz? Şimdiden teşekkürler.

    <td class="hr"><?php echo htmlspecialchars("payroll number")."&nbsp;" ?></td>
    <td class="dr"><input type="text" name="GevityNo" maxlength="10" value="<?php echo str_replace('"', '&quot;', trim($row["GevityNo"])) ?>"></td>
</tr>
<tr>
    <td class="hr"><?php echo htmlspecialchars("employee name")."&nbsp;" ?></td>
    <td class="dr"><textarea cols="25" rows="1" name="employee_name" maxlength="75"><?php echo str_replace('"', '&quot;', trim($row["employee_name"])) ?></textarea></td>
</tr>
<tr>
    <td class="hr"><?php echo htmlspecialchars("Sex")."&nbsp;" ?></td>
    <td class="dr"><select name="Sex">
    <option value=""></option>
    <?php
        $lookupvalues = array("male","female");
        reset($lookupvalues);
        foreach($lookupvalues as $val){
            $caption = $val;
            if ($row["Sex"] == $val) {$selstr = " selected"; } else {$selstr = ""; }
            ?>
            <option value="<?php echo $val ?>"<?php echo $selstr ?>><?php echo $caption ?></option>
    <?php } ?>
    </select>
</td>

5 Cevap

$ cat > /home/tkn/tmp/foo.php
  ... snip ...
^C
$ php -l /home/tkn/tmp/foo.php 
No syntax errors detected in /home/tkn/tmp/foo.php

Yani, evet geçerli php kod. Daha iyi bir editörü alın.

syntax-highlighting kullandığınız kod editörü parçasıdır. Senin kod iyi çalışıyor, hiçbir sorun o zaman orada.

Genellikle bu sorunlar tüm kod söylemek zordur görmeden. Yanlış "\ kaçtı ile ilgilidir.

Her neyse, bu kod parçası Tamam olduğunu çifte kontrol:

<?php echo $selstr ?>><?php echo $caption ?><

Kontrol >> < bölüm

Kodunuzu daha okunaklı hale getirmek için, alternative syntax for control structures kullanarak düşünmek:

<?php foreach(array("male","female") as $val): ?>
    <option value="<?php echo $val ?>" <?php echo ($row["Sex"] == $val)?'selected="selected"' : '' ?> > <?php echo $val ?> </option>
<?php endforeach; ?>

Benim görüşüm bu şekilde bu kod yapısını görmek daha kolaydır.

(Iki ifadeler ayrılarak aksine) According to http://www.php.net/manual/en/language.expressions.php, noktalı virgül bir ifadeyi sonlandırır. Ben tahmin ediyorum, belki o <?php echo $val ?>,% 100 uygun yapmak için bir noktalı virgül olmamalıdır gibi? kodu

Self-düzeltme: http://www.php.net/manual/en/language.basic-syntax.instruction-separation.php

The closing tag of a block of PHP code automatically implies a semicolon