PHP の empty 関数は誤って使用されやすい
?
phpの公式マニュアルには
と書かれています。?
?
それは後にマニュアルに厳かに記載されました、
?
empty は、変数が空かどうかを検出するために使用されます。たとえば、フロントページでユーザーのユーザー名を送信するときに、それが空であるかどうかを判断する必要があります。が空です。再送信してもらいます。この時点で、両側のスペースをフィルタリングして、empty を使用して検出する関数を使用する必要があります。
?
if (empty(trim($_GET['username'])) { …}
?
しかし、このコードを実行すると、エラーが報告されます。その理由は、「empty() は変数 のみを検出する」ためであり、trim によって返される実際の値は変数ではありません。したがって、ここで empty を実行すると、エラーが報告されました。変更方法も非常に簡単で、最初の方法:
?
if (trim($_GET['username'] == ’‘) { …}
?
2 番目の方法は、中間変数を追加することです:
?
$username = trim($_GET['username']); if (empty($username)) { …}
この問題を解決するには、プロジェクトで検証フレームワークを使用することをお勧めします。