これは 2 行のコードです。最初の方法と 2 番目の方法の違いを誰か教えてもらえますか? 両方ともまったく同じことをしたいです。
$test = isset($_POST['test'])?$_POST['test']:[];
if(isset($_POST['test'])){
$test[] = $_POST['test'];
}
ありがとう !
これは 2 行のコードです。最初の方法と 2 番目の方法の違いを誰か教えてもらえますか? 両方ともまったく同じことをしたいです。
$test = isset($_POST['test'])?$_POST['test']:[];
if(isset($_POST['test'])){
$test[] = $_POST['test'];
}
ありがとう !
が設定されていない場合、最初の 1 つは$test空の配列$_POST['test']に設定されます。$testただし、2 つ目はデフォルト値に設定されていません。実際、設定されていない場合$_POST['test']は、$test存在しない/未定義などになります。
$test = [];まったく同じ結果をアーカイブするには、2 つ目の最初に実行する必要があります。
一番上の行は次のようになります
if(isset($_POST['test'])){
$test = $_POST['test'];
}else{
$test = [];
}
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のこのページの三項演算子セクションも参照してください。