CodeIgniter静态类问题

时间:2010-06-17 20:58:49

标签: php codeigniter static singleton

如果我想在我的模型中有几个静态方法,那么我可以说User::get_registered_users()并让它做类似的事情

public static function get_registered_users()
{
    $sql = "SELECT * FROM `users` WHERE `is_registered` = 0";
    $this->db->query($sql);
    // etc...
}

是否可以访问$this->db对象或为静态方法创建一个新对象?

2 个答案:

答案 0 :(得分:3)

很简单:

get_instance()->db...

get_instance()->db...

$CI =& get_instance();
$CI->db->get('users')->result();
$CI->session->set_userdata('login', TRUE);

答案 1 :(得分:0)

Matt S是正确的,虽然Kohana是为PHP5而构建的,所以之前的兼容性不是问题。

静态方法无权访问其他变量。如果变量被定义为self :: db,那么您可以使用它,并且您可能希望以这种方式实例化它。

静态方法最适用于不需要对象的内容,例如格式化文本,重定向页面等。

相关问题