2014-03-02 26 views
-4

我想知道爲什麼串聯會回顯文本行中的空格,但是當我將它添加到URL時,它不會添加空格?如果我沒有添加每個連接之間的空間,該URL是否仍然有效?爲什麼不連接在url中添加一個空格?

<?php foreach($products as $id => $p) { ?> 
    <div class="container">   
    <?php 
    echo '<a href="test.php?id=' . $id . '">'; 
    echo '<img src="' . $p['img'] . '">'; 
    ?> 
    </div> 
<?php } ?> 
+2

串聯並不會增加空格。如果你把它放在那裏或者連接的變量沒有被修剪,它會在那裏......否則,不是。 – CodeAngry

回答

0
echo '<a href="test.php?id=' . $id . '">'; 

echo '<a href="test.php?id='.$id.'">'; 

前後連接運算符(點)後的空間是同樣的事情只是爲了使其更具可讀性

+0

謝謝,我不知道,我還在學習:) –

0

你的代碼看起來應該像這個:

<?php foreach($products as $id => $p) { ?> 
    <div class="container">   
    <?php 
     echo '<a href="test.php?id=', htmlentities($id), '">', 
      '<img src="', htmlentities($p['img']), '">', 
      '</a>', PHP_EOL; 
    ?> 
    </div> 
<?php } ?> 
  • echo不需要.來連接。它可以使用,,因爲它是一種語言結構,並有特殊待遇。當你可以輸出時,你在輸出上做了一個毫無意義的concat。
  • 您應該使用htmlentities來逃避屬性以保持安全。
  • 您應該在<img>之後關閉</a>
  • 'x'.'y''x' . 'y'相同。這個空間被PHP拋棄,但它被開發人員用於可讀性。
相關問題