ここでは、複製に問題はありません。$inputs['user_id']
変数が設定されているかどうかを確認する前に変数に代入することはできませんNotice undefined index ...
。
ここでできる唯一のことは、次のように、isset
呼び出しを省略して!empty
代わりに使用することです。
if(!empty($inputs['user_id'])) {
doSomething($inputs['user_id']);
}
今、あなたはそれを2回入力するだけで、チェック
!empty($inputs['user_id'])
に等しい
isset($inputs['user_id']) && $inputs['user_id']
編集:コメントに基づいて、ここにドキュメントからの引用があります:
次のものは空と見なされます。
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
したがって、またはいずれempty(0)
かempty('0')
が返されますtrue
。つまり、
if(!empty('0') || !empty(0)) { echo "SCREW YOU!"; }
何もエコーしません...または、丁寧な方法で、上記のステートメントを繰り返します。
!empty($inputs['user_id']) === (isset($inputs['user_id']) && $inputs['user_id'])
編集2:
を省略して変数isset
に置き換えることで、インデックスが既に設定されているかどうかが引き続きチェックされます。ドキュメントを読んでください。!empty
変数が存在しない場合、警告は生成されません。つまり、empty()は本質的に!isset($var) ||と同等の簡潔なものです。$var == false .