【问题标题】:PHP Class How to output this methodPHP类如何输出这个方法
【发布时间】:2013-01-19 15:58:39
【问题描述】:

您好,正如我在上一个问题中提到的,我正在学习 php 中的类和方法,所以我还有一个问题要了解如何使用此查询方法在主题中输出结果。

我目前正在尝试使用 WordPress,所以请考虑一下。然而,它对于 WordPress 来说不是太通用,而是逻辑。

<?php

class get_user_widget
{

    // other mentods are here which is not related to below method

    public static function get_users() {
        global $wpdb;        

        $query = "SELECT id, user_login FROM $wpdb->users ORDER BY user_registered DESC";
        $users = $wpdb->get_results($query);

        // here I am using foreach so is it okay or while loop is right to use?
        foreach ($users as $users)
            $rs[] = $users;

        return count($rs) ? $rs : array();

    }

}

?>

那么如何在主题中使用它来按注册日期呈现用户的输出列表?我已经检查了 print_r() 和连接,一切都很好,并且可以在数组中输出,但需要使用 html。

非常感谢..

【问题讨论】:

  • 如果您不知道如何获取函数的输出并将其呈现为 HTML,我认为您需要阅读 PHP 手册。
  • 我知道如何输出函数,但由于我从未使用过类和方法,所以我对如何使用上述方法将输出作为单个项目获取有点困惑。休息我可以管理。
  • 你试过echo get_user_widget::get_users();吗?
  • 请发布 print_r(get_user_widget::get_users()) 的输出
  • @pixelngrain 谷歌会给你很多结果(查询:PHP OOP 教程)。喜欢这个:killerphp.com/tutorials/object-oriented-php 和这个:webhole.net/2010/04/17/10-object-oriented-php-tutorials

标签: php class methods


【解决方案1】:

这个类可以这样使用:

$array = get_user_widget::get_users();
echo "<ul>";
foreach($array as $user) {
echo "<li>".$user->user_login."</li>";
}
echo "</ul>";

编辑:

class get_user_widget
{

    public static function get_users() {
        global $wpdb;        

        $query = "SELECT id, user_login FROM $wpdb->users ORDER BY user_registered DESC";
        $users = $wpdb->get_results($query);


        if(!empty($users)) {
             return $users;
        }
        else {
             $fakeuser = new stdClass();
             $fakeuser->user_login = "No users in database";
             return array($fakeuser);
        }
    }

}

【讨论】:

  • 这太棒了,我想学习。如果您还有几分钟的时间,请您从逻辑上解释方法和此代码之间的联系,它是如何工作的。据我了解,您调用了该方法并分配给$array,然后使用 foreach 来获取单个项目。但是这个 foreach 和方法中的内容一样吗?还是方法的foreach和主题foreach之间没有关系?
  • 类中的 foreach 实际上是没有意义的,因为它只是将 $users 复制到 $rs,然后该方法返回 $rs。上面的 foreach 循环仅用于将原始数据包装在
  • 标签中。
  • 所以我可以/应该从课堂上删除 foreach?
  • 看看我更新的答案,看看它是否适合你。
  • 现在这是呼叫专家修饰。代码运行良好。看我从没想过以这种方式发挥作用。百万谢谢。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签