有没有更好的方法在PHP中写入行?

时间:2011-05-29 12:37:28

标签: php

 <div class="meta">
<?php echo  $submitted."pubblished in".$fenl; ?>
<a href="<?php echo base_path().'comp/'.$node->nid;?>">
<?php echo $comment_count;?>comment</a>
</div>

有更好的方法来编写上面的代码。

2,

function blog_gettag(){
    $terms = mysql_query('SELECT vid,name FROM term WHERE vid=2');
    $items = array(); 
    foreach ($terms as $term){
        $items[] = $term->name;
    }

    return $items;
}

我可以删除$items = array();这条线。谢谢。

4 个答案:

答案 0 :(得分:1)

  1. 不是真的,除非你计算短标签,但是they are frowned on

  2. 从技术上讲,它会自动创建,但是您应该预先声明空数组,否则应该生成警告。

  3. NB。如果您有两个单独的问题,将来应该单独询问。

答案 1 :(得分:1)

一行怎么样?

<?php
echo "<div class=\"meta\">\n{$submitted}published in$fenl\n<a href=\"" .
  base_path() . "comp/{$node->nid}\">\n$comment_count\ncomment</a>\n</div>";
?>

只要您的脚本中没有使用$items = array();,就可以删除$items(如果$items不是数组,则不要返回$terms并且foreach循环被调用,因为情况似乎是在那一刻)。我相信您需要检查http://php.net/manual/en/function.mysql-query.php处的mysql_query()示例。

答案 2 :(得分:0)

语法上还不错。据我所知,您可以省略$items = array();,但如果您保持原样,我会发现它更具可读性。

顺便说一下:你不需要使用mysql_fetch_assoc进行迭代吗? mysql_query返回一个资源。

答案 3 :(得分:0)

echo "<div class=\"meta\">" . $submitted . " pubblished in " . $fenl . "<a href=\"" . base_path() . "comp/" . $node->nid . "\">" . $comment_count . " comment</a></div>";

您不需要定义数组。但在这种情况下(foreach问题.Foreach循环需要一个数组作为参数左侧的“as”。如果你删除该行$ items将不是一个数组。它将是一个空变量。所以你会得到一个警告。)应该定义。