2011-04-09 97 views
0

是不是很好的做法,就像我在下面展示的那样?如果在某个表中有行,我想要做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

[codereview.stackexchange.com](http://codereview.stackexchange.com) – Shaz 2011-04-09 20:53:39

回答

1

这不是一个很干净的解决方案。我会考虑一个方法initialize(),它将从构造函数中调用。这个方法会和你的构造函数一样,但会'返回'而不是'死'。或者您可以使用if/else if/else块来控制程序执行流程。

+0

伟大的建议与回报。谢谢。 – 2011-04-09 22:38:58

0

那么,那肯定是奇怪的战术,但我不认为它是直接禁止的地方。唯一的事情是一个类不应该真的执行die()构造。可能只有像异常处理程序这样非常特殊的类才有这个特权。

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

+0

我不想做很多if else语句。 – 2011-04-09 20:54:54

相关问题