Php 为什么连接不在url中添加空格?

Php 为什么连接不在url中添加空格?,php,Php,我想知道为什么连接会在文本行中回显一个空格,但当我将它添加到URL时,它不会添加空格?如果我没有在每个连接之间添加空格,这个URL还会工作吗 <?php foreach($products as $id => $p) { ?> <div class="container"> <?php echo '<a href="test.php?id=' . $id . '">'; echo '<

我想知道为什么连接会在文本行中回显一个空格,但当我将它添加到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 } ?>
这和

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

连接运算符前后的空格点只是为了使其更具可读性

您的代码应该如下所示:

<?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转义属性以保持安全。 你应该在会议结束后关闭会议室。 这个“x”。“y”与“x”相同是的。PHP丢弃了这个空间,但是开发人员为了可读性而使用它。
串联不会突然添加空格。如果你把它放在那里或者连接的变量没有被修剪,它就会在那里。。。否则,就不是。
<?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 } ?>