[如何避免PHP嵌套,否则……条件并编写简洁,易于理解的代码?

问题描述 投票:1回答:1

我正在codeigniter中编写一个登录方法,用户将在其中输入电子邮件和密码,然后它将执行以下操作:

  1. 验证用户输入->如果有效,请执行第2点
  2. 从数据库获取用户详细信息->如果成功查询,请执行第3点
  3. 验证密码->如果已验证登录到系统,则>]
  4. 我知道我可以通过使用纯嵌套if ... else条件来实现上述目的,但是这将非常繁琐且难以阅读。因此,我以这种方式尝试过-

// Empty array to hold processing errors
$processing_errors = array();

// Check for valid input
if(!$is_valid_input) array_push($processing_errors, "Invalid inputs");

// Get user details
if($get_user_details)
{   
    // Verify the user
    if(!$is_correct_user) array_push($processing_errors, "Incorrect username or password.");
}
else array_push($processing_errors, "Database query error");

// Check if processing errors is empty 
if(empty($processing_errors)) echo "Successfully logged in."; // Success
else foreach($processing_errors as $errors) echo $errors; // Errors

但是上述方法的问题是,即使返回[false],它仍然会在Check for valid input之后执行代码,并且会花费不必要的处理时间。

编写干净整洁的可读代码的最佳方法是什么?

我正在codeigniter中编写一个登录方法,用户将在其中输入电子邮件和密码,然后它将执行以下操作:验证用户输入->如果有效,请执行第2点,从数据库中获取用户详细信息-> ...

php codeigniter authentication coding-style
1个回答
1
投票

您可以将这些方法分解为仅公开登录请求方法的方法,并将其他所有内容保持内部(如private方法中所示),如下所示。 userLogin是请求的来源。

Snippet:

© www.soinside.com 2019 - 2024. All rights reserved.