首页 > 解决方案 > 我可以从 Class 构造函数中提前退出(返回)吗?

问题描述

如果构造函数中的一个参数满足某个条件,我需要提前从类构造函数中退出,我可以像下面的示例那样使用 return 还是有另一种方法可以做到这一点?

class Test {

  public function __construct( arg1, arg 2 ) {

    switch case( arg2 ) {
      case 'case1':
        ...do some settings for the code to follow...
      break;
      case 'case2':
        return; // Can I do this?
      break;
    }

    ...Other code to execute if args2 wasn't 'case2'...

  }

}

感谢所有会回答的人。

编辑

对于任何可能觉得这个问题很奇怪的人:在某些语言中,构造函数应该返回特定的值才能真正创建一个类,这就是我要问的原因。

标签: phpclass

解决方案


__construct只是由普通函数调用调用的普通函数,是的,您可以随时return从该函数调用任何其他函数。请注意,您的任何都将被忽略,但这显然无关紧要。return__construct

出于这个原因(这__construct不会返回任何东西),出于可读性原因,我会避免过早退出,但没有技术原因。对于构造函数,我更喜欢if-this-do-that模式而不是if-this-stop-prematurely模式。


推荐阅读