php
  • hyperlink
  • anchor
  • 2012-03-23 86 views 1 likes 
    1

    考慮用於HTML輸出下面的PHP代碼:PHP有條件錨打印

     echo "<div id='logo2'> 
           <a href='if(checkLanguage()) index.php; else index.php?lang=en;'> 
            <img src='img/logotext1.png' width='".$logoWidth2."'height='".$logoHeight2."' 
            border='0';/> 
           </a> 
         </div>"; 
    

    正如你看到一個標籤如果和其他條件不能正常工作,因爲一些串聯的錯誤。任何幫助使超鏈接工作非常感謝。

    +2

    此外,你應該用雙引號(「)的HTML屬性,而不是單引號(')。 – halfer 2012-03-23 16:06:02

    回答

    1

    會reccoment採取有條件出去,使您的代碼更加清晰:

    $href = (checkLanguage() ? 'index.php' : 'index.php?lang=en'); 
    echo ' 
    <div id="logo2"> 
        <a href="'.$href.'"> 
         <img src="img/logotext1.png" width="'.$logoWidth2.'" height="'.$logoHeight2.'" border="0" /> 
        </a> 
    </div>'; 
    
    1

    您還沒有附上您的PHP部分<?php?>

    編輯;啊,這是一個大的echo聲明。將所有HTML都製作好,並在需要時打開PHP標籤會更好。也就是說,<div><a>標籤不需要被回顯 - 只需將它們放在PHP標籤之外併爲if打開<?php即可。

    4

    變化

    <a href='if(checkLanguage()) index.php; else index.php?lang=en;'> 
    

    通過

    <a href='".(checkLanguage() ? 'index.php' : 'index.php?lang=en')."> 
    

    不過,我會建議這樣的:

    <div id="logo2"> 
        <a href="<?php echo (checkLanguage() ? 'index.php' : 'index.php?lang=en'); ?>"> 
        <img src="img/logotext1.png" width="<?php echo $logoWidth2; ?>" height="<?php echo $logoHeight2; ?>" border="0" /> 
        </a> 
    </div> 
    

    另外:

    • 爲PHP使用HTML代碼和撇號的雙引號。
    • 拆開的if else內的可變
    +0

    應該指出的是,速記可變印刷‘<?=’一直是砧板幾個上並且可能會在未來版本的PHP中被棄用 – 2012-03-23 16:25:03

    +0

    好的,我將它編輯爲「符合」 – 2012-03-23 20:38:44

    +0

    之前沒有任何技術上的錯誤,它仍然是有效的使用,並且尚未被棄用。我只是想要說明,但使用完整的PHP標籤可能是未來兼容性最安全的選擇。這裏是關於這個問題的好帖子:http://stackoverflow.com/questions/200640/are-php-short-tags-acceptable-to-use – 2012-03-23 20:50:53

    2

    這不是PHP是如何工作的?

    <?php ?> 
    <div id="logo2"> 
        <a href="<?= checkLanguage() ? 'index.php' ? 'index.php?lang=en' ?>"> 
         <img src="img/logotext1.png" width="<?= $logoWidth2 ?>" height="<?= $logoHeight2" border="0" /></a> 
    </div> 
    

    請注意,我用速記<?=結構,它只能在short_tags啓用在你的PHP配置中。否則,它必須是<?php echo

    另外,請注意,我將這段代碼的大部分花費在「html模式」中。當你在做非主要的非php代碼時,最好只在非php代碼中嵌入小塊<?php ?>塊,而不是混淆回聲,引用轉義等等。任何像樣的編輯器都是鹽的無論如何突出顯示PHP代碼,所以易讀性得到很大提高,PHP部分也會很好地突出。

    1

    既然你是剛剛起步,我在最詳細易懂的格式寫的代碼塊。我也刪除了您的HTML格式,並將其替換爲首選的CSS格式。

    <?php 
    echo '<div id="logo2">'; 
    
    if(checkLanguage()) 
    { 
        echo '<a href="index.php">'; 
    } 
    else 
    { 
        echo '<a href="index.php?lang=en">'; 
    } 
    echo '<img src="img/logotext1.png" style="width: '.$logoWidth2.'px; height: '.$logoHeight2.'px; border: none;" />'; 
    echo '</a>'; 
    
    echo '</div>'; 
    ?> 
    
    +0

    不好。太多回聲。 – 2012-03-23 16:11:11

    +0

    @DavidBélanger你完全錯過了這一點。這是故意冗長的,因爲原始海報是初學者。我絕不會向正在掙扎條件字符串打印的人推薦三元語法。 – 2012-03-23 16:13:26

    +0

    對不起。當我寫評論時,你沒有在評論中寫評論。只是你的代碼。好的一點,但永遠不會太晚學習正確的方式。 – 2012-03-23 16:17:14

    相關問題