-1

「start」、「middle」、「end」のフィールドが空かどうかを確認する次の $_POST 関数があります。

if(!empty($_POST['start'])) {
   $description = "a sentence".$_POST['start']." with something in the START.";
}

if(!empty($_POST['middle'])) {
   $description = "a sentence".$_POST['middle']." with something in the MIDDLE.";
}

if(!empty($_POST['end'])) {
   $description .= "a sentence".$_POST['end']." with something in the END.";
}

1 つの関数で値を確認したい、つまり複数の値を同時に確認したい。コンマ&&、または||を使用して、いくつかの方法を見てきましたが、どれが正しいかわかりません。、以下のようなもの...

if(!empty($_POST['start']) , (!empty($_POST['middle']) , (!empty($_POST['end']))

また

if(!empty($_POST['start']) && (!empty($_POST['middle']) && (!empty($_POST['end']))

また

if(!empty($_POST['start']) || (!empty($_POST['middle']) || (!empty($_POST['end']))

この種のフォーメーションの正しいコードを誰か教えてもらえますか?

4

3 に答える 3

4

ここにいくつかの基本があります..コメントとして作成しました(これがあなたが求めたものかどうかわからなかったので)が、少し詳細な回答が適切だと思います。

  • AND 演算子

&& はすべての条件をチェックし、すべてが true の場合は true を返します...

このようにしてください

if(FALSE && TRUE)

常に False を返し、条件の 1 つが false であるため if は実行されません

  • OR 演算子

|| ザ || true の場合は最初の条件をチェックし、true を返します。それ以外の場合は 2 番目の条件をチェックします。すべてが false の場合 (1 つでも true でない場合)、false を返します。

再び前の例に従って

if(TRUE || False || False)

現在、コンパイラは最初の条件が true であるかどうかをチェックし、次の 2 つの条件を無視して true を返します。

if(FALSE || FALSE || FALSE) - すべてが false であるため、これは false を返します

  • コンマ演算子

演算子の場合右側の最後の条件が評価され、それが true の場合は true を返し、それ以外の場合は false を返します。

if(True,True,True,False)  -  it will return false

if(FALSE, TRUE, FALSE, TRUE) - it will return true

ロジックに従って演算子を選択してください。

これを使って :

if((!empty($_POST['start'])) && (!empty($_POST['start'])) && (!empty($_POST['start'])));
于 2012-07-04T18:09:16.100 に答える
2

次のようなものを探しています:

// Establish valid post key values
$valid_post_variables = array_flip( ['start', 'middle', 'end'] );

// Fetch post data
$post = $_POST;

// $result will contain the values of post where the keys matched valid
$result = array_intersect_key( $post, $valid_post_variables );

// if the resulting array contains our 3 options, its go time
if ( count( $result ) == 3 ) {
     //start middle and end where all passed via POST
}
于 2012-07-04T17:57:14.200 に答える
0
function insertPost($before, $offset, $after)
{
    if(!empty($_POST[$offset])) {
         return $before . $_POST[$offset] . $after;
    }
    return '';
}

$description = insertPost('a sentence', 'start', ' with something in the START.');
于 2012-07-04T18:20:14.687 に答える