web-dev-qa-db-ja.com

php get変数が何かに設定されているかどうかを確認しますか?

変数が何かに設定されているかどうかを確認する必要があります。これまではstrlen()を使用してきましたが、これはreally恥ずかしいです何度も何度も使用する非常に効率的な機能。

この種のチェックをより効率的に実行するにはどうすればよいですか。

if (strlen($_GET['variable']) > 0)
{
    Do Something
}

$_GET['variable'] = ''の場合、何も実行しないように注意してください。

私が何を意味するのかを明確にするために-もし私がwww.example.com?variable=&somethingelse=1を持っていたら、ifステートメントを貫通させたくありません。

15
Amy Neville

emptyを試すことができます。

if (!empty($_GET['variable'])) {
  // Do something.
}

プラス側では、変数が設定されているかどうかもチェックします。つまり、issetを個別に呼び出す必要はありません。

issetを呼び出さないことに関して、いくつかの混乱があります。 ドキュメント から。

変数が存在しない場合、またはその値がFALSEの場合、変数は空と見なされます。 empty()は、変数が存在しない場合に警告を生成しません。

そして...

つまり、empty()は基本的に!isset($ var)||と同等の簡潔なものです。 $ var == false。

30
hw.
 if(isset($_GET['variable']) && $_GET['variable']!=""){

}
7
Srikanth Kolli
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
2
Pank

$ _GETが設定されているかどうかを確認するだけで、値がわからない場合は、$ _ GET配列を数えるだけです。

<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>
1
Calin Rusu

isset()のチェックを使用できますが、!= ''を使用して空白文字でないかどうかもチェックします

if (isset($_GET['variable'])) && ($_GET['variable']) != '')
0
Fabio

どうですか

if ($_GET['variable'])
{
     Do Something
}
0
Steve Taylor