簡體   English   中英

PHP:錯誤處理-構造數量為true / false語句的代碼的最佳方法?

[英]PHP: error-handling - best way to structure code for number of true/false statements?

在文件的頂部,我要檢查用戶權限,例如,如果已登錄,是否有權訪問頁面,哪些內容對他們可見,是否由用戶自己發布,是否已包含所有必要參數通過(例如POST -vars)等

因此,問題是,您會建議什么是最好的方法(該代碼保持可讀性和可理解性,不是針對特定頁面的,因為它可以在每個頁面上實現,因為許多檢查需要數據庫查詢,所以性能等等) )

我問的原因是因為現在我正在做這樣的事情:

if($logged_in!=1) {$error="err1";}

else {
    if(...) {...}
    else {...}
}

因此,基本上,如果一個檢查返回acces被拒絕, if s不會使代碼遍歷所有其他代碼,而是立即中斷。 我不使用exitdie因為我確實想顯示頁面(沒有內容,但有一個錯誤框),所以如果我使用exitdie ,它將不會在下面顯示任何其他代碼...

您建議做什么?

非常感謝您的幫助。

好吧, if / else結構往往是巨大的,並且不是很可讀。 您可以考慮將Exceptions用於失敗案例,基本上是:

<?php
try {

   if($logged_in!=1) {
      throw new Exception("You must be logged in");
   }

   if(!another_condition()) {
      throw new Exception("Another condition failed");
   }

   do_something();
}
catch (Exception $error) {
   display_error_page($error->getMessage());
}

總的來說,這並不是最漂亮的方法:這些情況本身就是面向對象需求的完美示例。

也可以看看:

http://php.net/manual/zh/language.oop5.php

http://php.net/manual/zh/language.exceptions.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM