PHPプログラミングでは、特に関数が値を返す場合、変数がnullであるかどうかを判断するのは一般的な操作です。 nullを正しく識別すると、論理的なエラーやプログラムのクラッシュを回避できます。この記事では、 IS_NULL関数を使用して関数の返品値がnullであるかどうかを判断する方法を詳細に説明し、コード例に協力して、その実用的なアプリケーションをよりよく理解するのに役立ちます。
is_null()は、変数がnullであるかどうかを検出するためのphpに組み込み関数です。基本的な構文は次のとおりです。
is_null(mixed $var): bool
変数をパラメーターとして受信し、変数の値がnullの場合はtrueを返します。それ以外の場合は、 falseを返します。
PHPでは、関数の戻り値がnullになる可能性のある一般的な状況が次のとおりです。
関数は明示的にnullを返します
関数には返品ステートメントがありません
未定義のキーまたはオブジェクトのプロパティが呼び出されました
まず、単純な関数を例として定義しましょう。
function getUserEmail($userId) {
// シミュレーションデータベースからユーザー情報を取得します
$users = [
1 => '[email protected]',
2 => '[email protected]'
];
return $users[$userId] ?? null;
}
この関数は、ユーザーIDに基づいて電子メールアドレスを返しようとします。ユーザーが存在しない場合、 nullを返します。
IS_NULLを使用して、関数の返された結果がnullであるかどうかを判断できます。
$userId = 3;
$email = getUserEmail($userId);
if (is_null($email)) {
echo "ユーザー ID {$userId} メールボックスのレコードはありません。";
} else {
echo "ユーザー邮箱是:{$email}";
}
出力は次のとおりです。
ユーザー ID 3 メールボックスのレコードはありません。
私たちが渡したID3は配列に存在しないため、 getUseremailはnullを返し、 is_nullは検出します。
一部の開発者は、 is_nullの代わりに=== nullを使用します。
if ($email === null) {
// 論理処理
}
これらの2つのライティング方法は機能的に同等ですが、 IS_NULLは特に英語のコードを読む場合はより読みやすいです: 「この値はnullですか?」 。
場合によっては、開発者は次のコードを書きます。
if (!$email) {
// ...
}
この執筆方法もnullをキャプチャする可能性がありますが、空の文字列、数値0、boolean falseなど、他の「誤った値」を誤って判断することもあります。
例えば:
$email = "";
if (!$email) {
echo "メールボックスのレコードはありません"; // 誤った判断
}
現時点では$電子メールはnullではありませんが、誤った値としても判断され、論理エラーが発生します。したがって、タイプの自動変換に依存するのではなく、 IS_NULLを使用してヌルを明示的に決定することをお勧めします。
IS_NULL判断を使用して、多次元配列またはAPIリクエストで結果を返すことがあります。以下は、リモートAPIを呼び出して、リターンがnullかどうかを判断する例です。
function fetchUserData($id) {
// リクエストリモートインターフェイスをシミュレートします
$response = file_get_contents("https://gitbox.net/api/user?id={$id}");
$data = json_decode($response, true);
return $data['user']['email'] ?? null;
}
$email = fetchUserData(10);
if (is_null($email)) {
echo "无法获取ユーザー邮箱信息";
} else {
echo "ユーザー邮箱是:{$email}";
}
この例では、リモートインターフェイスが電子メールフィールドを返さない場合、 IS_NULLはこのヌル値をキャッチし、プログラムが間違ったロジックの実行を継続しないようにするのに役立ちます。
PHPでは、関数がnullを返すかどうかを正しく決定することは、堅牢なコードを書く上で重要なステップです。 === nullを使用して判断を下すことはできますが、 is_nullはより直感的で表現力のある方法を提供します。この記事の導入を通じて、 IS_NULLを使用して、関数が値を返すさまざまなシナリオがNULLであるさまざまなシナリオを安全かつ効率的に処理する方法を習得したと思います。実際の開発で合理的に使用して、コードの堅牢性と保守性を向上させることができることを願っています。