从 Php/Mysql 函数到 return HTML 是一个好习惯吗?

Is it a good practice to return HTML from Php/Mysql function?

例如,请看下面的代码,它 return 根据从数据库中获取的状态进行链接。

function favourite_store_link ($store_id, $user_id)
    {
        (string) $display_output = null;

        if ($user_id)
        {

            $is_favourite = $this->count_rows('favourite_stores', "WHERE store_id='" . $store_id . "' AND user_id='" . $user_id . "'");

            $fav_store = ($is_favourite) ? 'remove' : 'add';
            $fav_store_msg = ($is_favourite) ? MSG_ADD_TO_FAVOURITE_STORES : MSG_REMOVE_FROM_FAVOURITE_STORES;
            $display_output = ' [ <a href="' . process_link('shop', array('user_id' => $store_id, 'fav_store' => $fav_store)) . '">' . $fav_store_msg . '</a> ]';
        }

        return $display_output;
    }

我想问一下是否可以这样做,或者我必须 return 事态并让模板处理其余部分。

最好将逻辑和视图拆分到代码的不同部分。 如果您只是 return 来自函数的数据,您将可以灵活地在其他地方、不同的视图等中使用此函数。

划分职责是良好可维护代码的主要原则之一。您可以阅读更多相关信息 here