4

これは、!isset の代わりに isNAN を使用して Javascript で実行できます。以下の例を使用すると、値のないフォームと値のあるフォームの両方がスクリプトに投稿されます。以下のコードは、post var が存在しない場合に値を割り当てるために PHP でこれを行う正しい方法ですか?

$mycheck = !isset($_POST['値']) ? 0 : $_POST['値'];

<? 
if($_POST) :
  $mycheck = !isset($_POST['value']) ? 0 : $_POST['value'];
  echo $mycheck;
endif;
?>

<!-- send value-->
<form action="" method="post">
  <select name="value">
    <option value="0">0</option>
    <option value="5">5</option>
  </select>
  <input type="submit" name="submit">
</form>

<!-- doesn't send value-->
<form action="" method="post">
  <input name="different_var">
  <input type="submit" name="submit">
</form>
4

2 に答える 2

6

はい、これはデフォルト値を設定する許容可能な方法です。

PHP 5.3 で導入された別の方法は、三項式の中間の引数を省略することです。

$mycheck = $_POST['value'] ?: 0;

ただし、設定されていない場合、存在しないキーで配列にアクセスしようとすると、通知がスローされる可能性$_POST['value']があります。したがって、元の方法がより受け入れられます。

于 2012-07-20T16:11:29.390 に答える
1

それは機能しますが、それを書くよりクリーンな方法があります。

PHP 5.3 では、次のように三項演算を 2 つの式に短縮できます。

$mycheck = $_POST['value'] ?: 0;

それは基本的にあなたがすでに持っているものを意味します。

于 2012-07-20T16:12:30.010 に答える