16

変数が何かに設定されているかどうかを確認する必要があります。今までstrlen()を使用してきましたが、何度も何度も使用するのは非常に効率的な関数ではないと確信しているので、それは本当に恥ずかしいです。

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

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

次の場合は何もしたくないことに注意してください$_GET['variable'] = ''

私が何を意味するのかを明確にするために-もし私が持っていwww.example.com?variable=&somethingelse=1たら、そのifステートメントに侵入したくないでしょう

4

6 に答える 6

33

試すことができemptyます。

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

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

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

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

と...

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

于 2013-06-08T12:27:19.040 に答える
7
 if(isset($_GET['variable']) && $_GET['variable']!=""){

}
于 2013-06-08T12:27:09.220 に答える
4

$_GET が設定されているかどうかを確認したいだけの場合、値を知らずに $_GET 配列をカウントします。

<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>
于 2014-10-01T13:45:37.617 に答える
2
if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}
于 2013-06-08T12:29:57.213 に答える
0

チェックを使用できますがisset()、空白文字以外もチェックしたいと思います != ''

if (isset($_GET['variable'])) && ($_GET['variable']) != '')
于 2013-06-08T12:27:17.280 に答える
0

ちょうどどうですか

if ($_GET['variable'])
{
     Do Something
}
于 2013-06-08T12:31:29.500 に答える