Php语法问题

时间:2013-03-20 20:53:01

标签: php html

我是php新手...这是wordpress。这是什么问题?每个循环都很简单......

<?php
    foreach( $how_posts as $post ) : setup_postdata($post);
    echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true); . '">' . the_title(); . '</a></li>';
    $nav_items[] = html_entity_decode(get_the_title(), ENT_QUOTES, 'UTF-8');
    endforeach; 
?>

2 个答案:

答案 0 :(得分:4)

删除功能结束时的;

echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';

答案 1 :(得分:4)

在这里你应该注意几件事。

1)您的代码中间有分号:

echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true); . '">' . the_title(); . '</a></li>';
// Should be:
echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';

2)endforeach使用“替代”语法:

出于标准,可读性的考虑,应该尽可能避免使用替代PHP语法,并防止下一个必须阅读代码的人抓住你并用生锈的刀刺伤你。

因为这些语法是“备用的”,所以可以安全地假设这些不是推荐的执行操作的方法。虽然它们确实有效并且目前没有任何计划弃用此功能,但我不会长期依赖它们,因为PHP开始涉及它的失控方法。

foreach( $how_posts as $post ) :
// Should be:
foreach( $how_posts as $post ) {

and

endforeach;
// Should be:
}

实施例

<?php
foreach($how_posts as $post) {
  setup_postdata($post);
  echo '<li><a href="#section_' . get_post_meta($post->ID, 'sub_nav_name', true) . '">' . the_title() . '</a></li>';
  $nav_items[] = html_entity_decode(get_the_title(), ENT_QUOTES, 'UTF-8');
}