【问题标题】:How to format long echo expressions in PHP?如何在 PHP 中格式化长回显表达式?
【发布时间】:2021-08-29 15:37:40
【问题描述】:

我正在用 PHP 编写我的函数来列出帖子类别(只看代码风格,而不是逻辑):

function list_categories() {
    // $html = '';

    echo '<div class="post-categories post-items__categories">';
    echo '<span class="post-categories__title">Categories:</span>';

    echo '<ul class="post-categories__list">';
    echo '<li class="post-categories__item"><a class="post-categories__link">All categories</a></li>';

    $categories = get_categories([
        'taxonomy'     => 'category',
        'type'         => 'post',
        'orderby'      => 'name',
        'order'        => 'DESC',
        'hierarchical' => false,
    ]);

    foreach ($categories as $category) {
        $cat_class = ($category->term_id == get_queried_object_id()) ? 'active' : '';

        echo '<li class="post-categories__item">
                  <a class="post-categories__link" href="'.get_category_link($category->term_id).'">'.
                     $category->name.
                 '</a>
              </li>';
    }

    echo '</ul></div>';
}

我希望我的标签回显表达式更具可读性,而不仅仅是像这里这样的一行:

echo '<li class="post-categories__item"><a class="post-categories__link">All categories</a></li>';

我在 foreach 循环中使用了新行,但它仍然很难看。 我发现了 heredoc 语法,但我不能在其中调用函数。 你怎么写这种东西?实在不想一行写完

【问题讨论】:

  • 似乎heredoc是最好的解决方案,但是我们需要声明额外的变量来存储函数结果。无论如何,我想知道你的方法。

标签: php coding-style


【解决方案1】:

如果你只是需要回显 HTML,为什么不跳出 PHP,然后回到它呢

function list_categories() {
    // $html = '';

    echo '<div class="post-categories post-items__categories">';
    echo '<span class="post-categories__title">Categories:</span>';

    echo '<ul class="post-categories__list">';
    echo '<li class="post-categories__item"><a class="post-categories__link">All categories</a></li>';

    $categories = get_categories([....

变成……

        function list_categories() {
            // $html = ''; 
    
    //break out of php
    ?> 
        
            <div class="post-categories post-items__categories">
            <span class="post-categories__title">Categories:</span>
        
           <ul class="post-categories__list">
            <li class="post-categories__item"><a class="post-categories__link">All categories</a></li>
        
   <!--carry on with php-->
    <?php 
        
            $categories = get_categories([....

如果你需要在 html 代码中间调用一个变量,你可以这样..

<?php $demo = "hello"; ?>
<span><?php echo $demo; ?> World</span>

变量中的 HTML...

<?php $html = ' ?>
<!--HTML HERE-->
<?php '; ?>

【讨论】:

  • 哦,没有 php 标签的 HTML 代码会被回显吗?我不知道,谢谢。如果我不想回显,只想使用 $html .= 将 HTML 存储在我的 $html 变量(或连接)中怎么办?
  • @leonscander 看看我编辑的答案。
  • 太棒了。我得到了它。谢谢!
猜你喜欢
  • 2021-09-06
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2010-12-13
相关资源
最近更新 更多