私が直面している問題は非常に一般的だと思いますが、インターネットで単一のスレッドを見ることはありませんでした。
使用する場合isset($_POST)
、
- いつも戻ってき
true
ますか? - 応答は、使用しているPHPのバージョンによって異なりますか?
- は
$_POST
変数ですか?(結局のところ、これはスーパーグローバルな「変数」です)。php.netのドキュメントに記載されているため、
isset()
他のものを渡すと解析エラーが発生するため、変数でのみ機能します。
それは常にtrueを返しますか?
はい、GET
方法を使用してページを開いた場合でも、何もPOST
編集しなかった場合でも可能です。
応答は、使用しているPHPのバージョンによって異なりますか?
いいえ、そうではありません(非常に古いバージョンのPHPについてはわかりません)。
$ _POSTは変数ですか?
はい
isset()は変数でのみ機能します。他のものを渡すと、解析エラーが発生するためです。
これは、人々が生意気なことをしようとしないように、マニュアルに明示的に記載されています。たとえば、これらは機能しません。
function getVarName() { return '_POST'; }
isset(getVarName());
isset('$_POST');
では、なぜが設定されているかを確認したいのですか$_POST
。おそらく、特定の変数(電子メールなど)が投稿されたかどうかを確認したい場合は、次のことを確認する必要があります。
isset($_POST["email"])
isset($_POST);
常にtrueを返します。何かが含まれているかどうかを確認したい場合は、empty($_POST);
応答は、使用しているPHPのバージョンによって異なりますか?
いいえ
$ _POSTは変数ですか?
はい
次のいずれかを使用することをお勧めします。
if($_POST){
}
if(!empty($_POST)){
}
1、常にtrueを返しますか?
isset($_POST) は常に true を返します。$_POST が空の場合、false が返されます。
2, レスポンスは使用している PHP のバージョンによって異なりますか?
4.* 以下のバージョンについてはわかりませんが、応答は常に同じです。
3, $_POST は変数ですか?
はい、次のようなスーパーグローバルと見なされます: $GLOBALS、$_SESSION、$_POST、$_GET
データを投稿したかどうかは、$_POST
常に配列として設定されます。おそらく探しているのは、次のempty()
ようなデータが実際に投稿されたかどうかを確認する方法です。
if(!empty($_POST)) {
// POST data was set
}
Isset()
何らかの値が含まれている場合にのみ true を返します (ゼロ 0 の場合もあります)。値がない場合は false を返します。(0)使用を防ぎたい場合
if(isset($_POST) && $_POST)
これは、ゼロ以外の値を持つ場合にのみ真になります
$_POST is global array
Response doesn't depend upon the version of PHP