这是不好的做法吗?

时间:2011-04-09 20:50:07

标签: php oop

不好的做法就像我在下面展示一样吗?如果某些表中有行,我想做next_function_to_do_smth函数,如果是,我们调用函数并使用die来关闭构造。如果没有,我们从其他表中获取行。

如果这是不好的做法,我应该使用什么而不是它?

谢谢。

class test
{
    function __construct()
    {
        $this->get_mysql_count("mysql query to get COUNT(*) of smth");

        if($this->get_mysql_count > 0)
        {
            $this->next_function_to_do_smth();
            die();
        }

        $this->get_mysql_count("mysql query to get COUNT(*) of smth2");

        if($this->get_mysql_count > 0)
        {
            $this->next_function_to_do_smth2();
            die();
        }     

        //and so on, and so on   
    }
}

2 个答案:

答案 0 :(得分:1)

这不是一个非常干净的解决方案。我会考虑一个方法initialize(),它将从构造函数中调用。该方法与构造函数的作用相同,但会“返回”而不是“死”。或者您可以使用if / else if / else块来控制程序执行流程。

答案 1 :(得分:0)

嗯,这当然是一种奇怪的策略,但我不认为这是直接禁止的。唯一的问题是一个类不应该真正执行die()构造。可能只是非常特殊的类,例如异常处理程序应具有此权限。

可能是,如果你解释整件事,我们会发现其他建议。