これは 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のこのページの三項演算子セクションも参照してください。