現在の位置: ホーム> 最新記事一覧> ISSETとIS_NULLを組み合わせて、変数が定義されているかどうかを判断し、

ISSETとIS_NULLを組み合わせて、変数が定義されているかどうかを判断し、

gitbox 2025-05-29

Isset()とis_null()の違い

    • 変数が定義されており、値がnullではないかどうかを判断するために使用されます。

    • 変数が存在しない場合、または変数の値がnullである場合、 ysset()falseを返します。

    • ISSET()は、複数の変数の検出を一度にサポートし、すべての変数がnullではなく定義されている場合にのみtrueを返すことに注意してください。

  • is_null()

    • 変数の値がnullであるかどうかを判断し、変数が定義されているかどうかは気にしません。

    • 変数が存在しない場合、警告がトリガーされます(通知:未定義変数)。


ISSETとIS_NULLを組み合わせて、変数が定義されてnullかどうかを判断する

ISSET()の使用は、変数がnullであるかどうかを知ることはできません。これは、 nullの値を持つ変数に対してfalseを返すため、変数が未定義またはnullであり、2つを区別できないことを意味します。

is_null()のみを使用すると、変数が未定義の場合にエラーも報告されます。

したがって、最初にISSET()を使用して変数が存在するかどうかを判断し、次にis_null()を使用してnullかどうかを判断する必要があります。これにより、「可変未定義」と「可変ヌル」を正確に区別できます。


サンプルコード

<?php
// 検出される変数があると仮定します $var

if (isset($var)) {
    // 可変定義,それがあるかどうかを判断します null
    if (is_null($var)) {
        echo '$var 定義され、値はです null';
    } else {
        echo '$var 定義されていて、値はそうではありません null';
    }
} else {
    echo '$var 未定義';
}
?>

さらなる最適化の例:カプセル化機能

上記のロジックは、簡単に再利用できるように関数にカプセル化できます。

 <?php
function isDefinedAndNull(&$var): bool {
    return isset($var) && is_null($var);
}

// 使用の例
if (isDefinedAndNull($var)) {
    echo '$var 定義されています null';
} else {
    echo '$var 未定義或不为 null';
}
?>

ここでは、変数が未定義の場合に通知がトリガーされないようにするために、参照パス&$ varが使用されることに注意してください。


追加の指示

  • 変数が定義されていない場合警告が生成されます。

  • 組み合わせて使用​​すると、変数状態を正確に区別しながら、不必要な警告を回避できます。

  • ISSET()は、それが定義されているかどうかを決定するだけでなく、それがnullであるかどうかを決定します。

  • 変数が存在するかどうかを判断したい場合(それがnullかどうかを考慮していません)、 isset()を使用するだけです。


要約します

Isset()is_null()を組み合わせることにより、変数が定義されているかどうかを正確に判断し、値がnullであるかどうかを正確に判断することができます。実際の開発では、このような判断は、コードの堅牢性を確保するために初期化されない変数の処理に特に適しています。