gpt4 book ai didi

PHP - 嵌套 IF 语句

转载 作者:行者123 更新时间:2023-12-03 00:30:52 25 4
gpt4 key购买 nike

可以使用哪些控制结构来代替多个嵌套 IF 语句。

例如:

function change_password($email, $password, $new_password, $confirm_new_password)
{
if($email && $password && $new_password && $confirm_new_password)
{
if($new_password == $confirm_new_password)
{
if(login($email, $password))
{
if(set_password($email, $new_password))
{
return TRUE;
}
}
}
}
}

该函数的使用方式如下:

if(!change_password($email, $password, $new_password, $confirm_new_password)
{
echo 'The form was not filled in correctly!';
exit;
}

我这样调用我的所有函数,我想知道我的编码风格是否有问题。我有疑问,因为如果我遵循这个设计,那么这意味着我编写的每个函数都将与 IF 嵌套,检查每个阶段是否有错误。这是其他人做的吗?

我没有看到很多其他脚本是这样写的,嵌套的 IF 形成一个三角形,并且只在中间有所需的结果。如果没有达到中间,那么就会出现问题。

这是一个好的函数结构吗?

最佳答案

嵌套太深通常是一个坏主意 - 这是意大利面条逻辑并且难以遵循。由于每个验证步骤都取决于前一个阶段是否成功,因此根本不要嵌套 - 只需在某个阶段失败时退出即可:

function change_password(blah blah blah) {
if (!$condition1) {
return false;
}
if (!$condition2) {
return false;
}
etc....


// got here, must have succeeded
return true;
}

这清楚地表明了逻辑顺序是什么。

关于PHP - 嵌套 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11839268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com