具有多个逻辑运算符(AND、OR)的嵌套 IF 条件
Nested IF conditions with multiple logic operators (AND, OR)
这是我关于 Whosebug 的第一个问题,希望我旁边的人需要这种类型的代码。
我写的代码运行良好,但我想知道如何改进它或者是否有更好的方法来实现相同的结果。
// Do NOT include files for '404' and pages 'abc' or 'def' with slug '123'
if ( $pageName !== '404' )
{
if (( $pageName == 'abc' ) && ( $pageSlug == '123' )
OR ( $pageName == 'def' ) && ( $pageSlug == '123' )) {
return NULL;
}
else {
// include file
require_once ( '/file.php' );
// Do NOT include for page 'def'
if ( $pageName !== 'def' ) {
// include file
require_once ( file_2.php' );
}
}
};
因为你已经在一个函数中,所以你可以在 404 上直接 return 来减少一些嵌套。此外,由于 'return NULL',else 不是必需的我认为将您的 if-or 分解为 2 个 ifs 使其更具可读性:
function your_func_name($pageName, $pageSlug) {
if ( $pageName == '404' ) {
return;
}
if ( $pageName == 'abc' && $pageSlug == '123' ) {
return NULL;
}
if ( $pageName == 'def' && $pageSlug == '123' ) {
return NULL;
}
// include file
require_once ( '/file.php' );
// Do NOT include for page 'def'
if ( $pageName !== 'def' ) {
// include file
require_once ( 'file_2.php' );
}
}
这是我关于 Whosebug 的第一个问题,希望我旁边的人需要这种类型的代码。
我写的代码运行良好,但我想知道如何改进它或者是否有更好的方法来实现相同的结果。
// Do NOT include files for '404' and pages 'abc' or 'def' with slug '123'
if ( $pageName !== '404' )
{
if (( $pageName == 'abc' ) && ( $pageSlug == '123' )
OR ( $pageName == 'def' ) && ( $pageSlug == '123' )) {
return NULL;
}
else {
// include file
require_once ( '/file.php' );
// Do NOT include for page 'def'
if ( $pageName !== 'def' ) {
// include file
require_once ( file_2.php' );
}
}
};
因为你已经在一个函数中,所以你可以在 404 上直接 return 来减少一些嵌套。此外,由于 'return NULL',else 不是必需的我认为将您的 if-or 分解为 2 个 ifs 使其更具可读性:
function your_func_name($pageName, $pageSlug) {
if ( $pageName == '404' ) {
return;
}
if ( $pageName == 'abc' && $pageSlug == '123' ) {
return NULL;
}
if ( $pageName == 'def' && $pageSlug == '123' ) {
return NULL;
}
// include file
require_once ( '/file.php' );
// Do NOT include for page 'def'
if ( $pageName !== 'def' ) {
// include file
require_once ( 'file_2.php' );
}
}