-1

これは 2 行のコードです。最初の方法と 2 番目の方法の違いを誰か教えてもらえますか? 両方ともまったく同じことをしたいです。

   $test = isset($_POST['test'])?$_POST['test']:[];

if(isset($_POST['test'])){
    $test[] = $_POST['test'];
}

ありがとう !

4

3 に答える 3

4

が設定されていない場合、最初の 1 つは$test空の配列$_POST['test']に設定されます。$testただし、2 つ目はデフォルト値に設定されていません。実際、設定されていない場合$_POST['test']は、$test存在しない/未定義などになります。

$test = [];まったく同じ結果をアーカイブするには、2 つ目の最初に実行する必要があります。

于 2013-09-15T16:50:49.600 に答える
0

一番上の行は次のようになります

if(isset($_POST['test'])){
     $test = $_POST['test'];
}else{
     $test = [];
}
于 2013-09-15T16:53:00.627 に答える
0

1 つ目は の省略形である三項演算子を使用し、空でない場合はif (X) then $a = b else $a = cに設定$testする$_POST['test']か、空の配列に $test を設定します。

2 番目の例にはelseケースがないため、が空の$test場合は未定義のままになります。$_POST['test']

PHP マニュアルhttp://www.php.net/manual/en/language.operators.comparison.phpのこのページの三項演算子セクションも参照してください。

于 2013-09-15T16:53:30.530 に答える