Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何整理多个if条件以确保可读性?_Php_If Statement_For Loop_Foreach - Fatal编程技术网

Php 如何整理多个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条件以确保可读性

比如说,

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'))