PHPのempty関数は異常使用されやすい

WBOY
リリース: 2016-06-13 13:02:55
オリジナル
1038 人が閲覧しました

PHP の empty 関数は誤って使用されやすい

?

phpの公式マニュアルには

と書かれています。

?

変数が空かどうかを確認します。
var が空またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、およびプロパティを持たないオブジェクトは空とみなされ、var が空の場合は TRUE が返されます。 ?

?

それは後にマニュアルに厳かに記載されました、

?

empty() は変数のみをチェックします。変数ではないものをチェックすると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。 ?

empty は、変数が空かどうかを検出するために使用されます。たとえば、フロントページでユーザーのユーザー名を送信するときに、それが空であるかどうかを判断する必要があります。が空です。再送信してもらいます。この時点で、両側のスペースをフィルタリングして、empty を使用して検出する関数を使用する必要があります。

?

if  (empty(trim($_GET['username'])) { …}
ログイン後にコピー

?

しかし、このコードを実行すると、エラーが報告されます。その理由は、「empty() は変数 のみを検出する」ためであり、trim によって返される実際の値は変数ではありません。したがって、ここで empty を実行すると、エラーが報告されました。変更方法も非常に簡単で、最初の方法:

?

if  (trim($_GET['username'] == ’‘) { …}
ログイン後にコピー

?

2 番目の方法は、中間変数を追加することです:

?

$username = trim($_GET['username']);
if  (empty($username)) { …}
ログイン後にコピー
?

この問題を解決するには、プロジェクトで検証フレームワークを使用することをお勧めします。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート