Php 如何整理多个if条件以确保可读性?
如何整理多个if条件以确保可读性 比如说,Php 如何整理多个if条件以确保可读性?,php,if-statement,for-loop,foreach,Php,If Statement,For Loop,Foreach,如何整理多个if条件以确保可读性 比如说, if( $key != 'pg_id' && $key != 'pg_tag' && $key != 'pg_user' ) 当这种情况下的物品变长时,这让我感到困惑 它在下面这种情况下使用-foreach() 我想用,但我想我错了 一个可能的解决方案是将每个条件放在自己的行上: foreach( $editable_fields as $key ) { if( $key != 'pg_id' &&a
if( $key != 'pg_id' && $key != 'pg_tag' && $key != 'pg_user' )
当这种情况下的物品变长时,这让我感到困惑
它在下面这种情况下使用-foreach()
我想用,但我想我错了 一个可能的解决方案是将每个条件放在自己的行上:
foreach( $editable_fields as $key )
{
if( $key != 'pg_id' &&
$key != 'pg_tag' &&
$key != 'pg_user' )
{
$sql_pattern[] = "$key = ?";
}
}
我发现这为我澄清了这些类型的复合条件。因此,使用换行符:
if( $key != 'pg_id' &&
$key != 'pg_tag' &&
$key != 'pg_user'
){
$sql_pattern[] = "$key = ?";
}
使它更具可读性
开关
-语句仅用于测试一种情况。比如,如果你想查一个号码
$number = 12;
switch($number){
case 1:
// Do stuff...
case [...]
}
您可以将其展开:
if(
$key != 'pg_id' &&
$key != 'pg_tag' &&
$key != 'pg_user'
) {
/* code here */
$sql_pattern[] = "$key = ?"
}
。。。或者使用switch语句
switch ($key) {
default:
/* code here */
$sql_pattern[] = "$key = ?"
break;
case 'pg_id':
case 'pg_tag':
case 'pg_user':
break;
}
重构为一个名称描述其用途的函数:
function KeyIsNotMatch($key) {
if( $key != 'pg_id' && $key != 'pg_tag' && $key != 'pg_user' )
return true;
else
return false;
}
foreach( $editable_fields as $key )
{
if (KeyIsNotMatch($key)) $sql_pattern[] = "$key = ?";
}
您可以使用:
你可以使用
function KeyIsNotMatch($key) {
if( $key != 'pg_id' && $key != 'pg_tag' && $key != 'pg_user' )
return true;
else
return false;
}
foreach( $editable_fields as $key )
{
if (KeyIsNotMatch($key)) $sql_pattern[] = "$key = ?";
}
if (!in_array($key, array('pg_id', 'pg_tag', 'pg_user'))