1

私が直面している問題は非常に一般的だと思いますが、インターネットで単一のスレッドを見ることはありませんでした。

使用する場合isset($_POST)

  1. いつも戻ってきtrueますか?
  2. 応答は、使用しているPHPのバージョンによって異なりますか?
  3. $_POST変数ですか?(結局のところ、これはスーパーグローバルな「変数」です)。php.netのドキュメントに記載されているため、

isset()他のものを渡すと解析エラーが発生するため、変数でのみ機能します。

4

6 に答える 6

4

それは常にtrueを返しますか?

はい、GET方法を使用してページを開いた場合でも、何もPOST編集しなかった場合でも可能です。

応答は、使用しているPHPのバージョンによって異なりますか?

いいえ、そうではありません(非常に古いバージョンのPHPについてはわかりません)。

$ _POSTは変数ですか?

はい

isset()は変数でのみ機能します。他のものを渡すと、解析エラーが発生するためです。

これは、人々が生意気なことをしようとしないように、マニュアルに明示的に記載されています。たとえば、これらは機能しません。

function getVarName() { return '_POST'; }
isset(getVarName());
isset('$_POST');

では、なぜが設定されているかを確認したいのですか$_POST。おそらく、特定の変数(電子メールなど)が投稿されたかどうかを確認したい場合は、次のことを確認する必要があります。

isset($_POST["email"])
于 2012-12-26T09:55:18.137 に答える
1

isset($_POST);常にtrueを返します。何かが含まれているかどうかを確認したい場合は、empty($_POST);

応答は、使用しているPHPのバージョンによって異なりますか?

いいえ

$ _POSTは変数ですか?

はい

于 2012-12-26T09:55:47.013 に答える
1

次のいずれかを使用することをお勧めします。

if($_POST){

}
if(!empty($_POST)){

}

1、常にtrueを返しますか?

isset($_POST) は常に true を返します。$_POST が空の場合、false が返されます。

2, レスポンスは使用している PHP のバージョンによって異なりますか?

4.* 以下のバージョンについてはわかりませんが、応答は常に同じです。

3, $_POST は変数ですか?

はい、次のようなスーパーグローバルと見なされます: $GLOBALS、$_SESSION、$_POST、$_GET

于 2012-12-26T09:56:08.620 に答える
1

データを投稿したかどうかは、$_POST常に配列として設定されます。おそらく探しているのは、次のempty()ようなデータが実際に投稿されたかどうかを確認する方法です。

if(!empty($_POST)) {
    // POST data was set
}
于 2012-12-26T09:56:19.713 に答える
0
Isset()

何らかの値が含まれている場合にのみ true を返します (ゼロ 0 の場合もあります)。値がない場合は false を返します。(0)使用を防ぎたい場合

if(isset($_POST) && $_POST) 

これは、ゼロ以外の値を持つ場合にのみ真になります

$_POST is global array

Response doesn't depend upon the version of PHP
于 2012-12-26T10:00:58.293 に答える