加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP停止构造函数的最佳方法

发布时间:2020-12-13 21:52:41 所属栏目:PHP教程 来源:网络整理
导读:我正在处理停止构造函数. public function __construct(){ $q = explode("?",$_SERVER['REQUEST_URI']); $this-page = $q[0]; if (isset($q[1])) $this-querystring = '?'.$q[1]; if ($this-page=='/login') {include_once($_SERVER['DOCUMENT_ROOT'].'/page
我正在处理停止构造函数.

public function __construct()
{
   $q = explode("?",$_SERVER['REQUEST_URI']);
   $this->page = $q[0];

   if (isset($q[1]))
      $this->querystring = '?'.$q[1];

   if ($this->page=='/login') {include_once($_SERVER['DOCUMENT_ROOT'].'/pages/login.php');
      // I WANT TO EXIT CONSTRUCTOR HERE
}

有停止/退出构造函数的函数:

die(),exit(),break()并返回false

我使用return false但我对安全性感到困惑.退出构造函数的最佳方法是什么?

感谢您的时间.

解决方法

一个完整的例子,因为问题应该有一个可接受的答案:

在构造函数中抛出异常,如下所示:

class SomeObject {
    public function __construct( $allIsGoingWrong ) {
      if( $allIsGoingWrong ) {
        throw new Exception( "Oh no,all is going wrong! Abort!" );
      }
    }
}

然后在创建对象时,捕获如下错误:

try {
  $object = new SomeObject(true);
  // if you get here,all is fine and you can use $object
}
catch( Exception $e ) {
  // if you get here,something went terribly wrong.
  // also,$object is undefined because the object was not created
}

如果由于某种原因您没有在任何地方捕获错误,它将导致致命异常,这将导致整个页面崩溃,这将解释您“未能捕获异常”并将向您显示消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读