退会済みユーザー
2018/09/18 22:26
つ 配列
投稿2018/09/18 21:30
filter_inputのマニュアルを参照すると、以下は同等の動作をすることがわかります。
PHP
1$name = filter_input(INPUT_POST, 'name');
PHP
1if (!isset($_POST['name'])) { 2 $name = null; 3} elseif (!is_string($_POST['name'])) { 4 $name = false; 5} else { 6 $name = $_POST['name']; 7}
成功した場合は要求された変数の値、フィルタリングに失敗した場合に FALSE、 あるいは変数 variable_name が設定されていない場合に NULL を返します。
(1) 文字列でない!is_string($_POST['name'])
ことはフィルタリング失敗を意味するのですか?なぜですか?GETやPOSTは文字列しか送信できないということでしょうか。
(2) 変数が設定されていない(未定義)場合はNULLを返すとあります。
!isset($_POST['name'])
がTRUEになるのは、未定義もしくはNULLの場合なので、$_POST['name']がNULLの場合もNULLを返すはずです。
「設定されていない、またはNULLの場合にNULL を返します」としないのはなぜですか?
そもそも外部からの入力を格納した変数がNULLになる場合が存在しないからでしょうか。
細かいことですが教えていただけると助かります。
回答2件
あなたの回答
tips
プレビュー