PHP はオブジェクトフィールドが null か未定義かを判断します

PHPz
リリース: 2023-04-19 13:40:36
オリジナル
1231 人が閲覧しました

開発では、オブジェクトの特定のフィールドに値があるかどうかを判断する必要があることがよくありますが、この値は null または未定義である可能性があります。どちらの場合も値がないことを示しますが、それでも異なります。したがって、使用する場合には、実際の状況に応じて異なる処理を行う必要があります。

1. null と未定義の違い

  1. null

null は、定義されたオブジェクトまたは変数の値が空であることを意味します。割り当てモード。変数に値が割り当てられていないことを示します。 null は、プロパティが正しく割り当てられていないことを示すためにデバッグ コードでも使用できます。したがって、属性値が空かどうかを判断する場合は、=== 演算子を使用します。これは厳密な等価演算子であり、変数のデータ型が同じで値が等しい場合にのみ true を返します。例:

$data = [
    'title' => null,
    'content' => '内容',
];
if ($data['title'] === null) {
    echo '未设置标题';
}
ログイン後にコピー
  1. unknown

unknown は、変数が宣言されていますが、まだ値が割り当てられていないことを意味します。さらに、unknown には次のような状況があります。

##(1) 変数が存在しません

##(2) オブジェクトに特定の属性がありません

##(3) 関数に戻り値がありません

確実に判定したい場合 属性が未定義かどうかは isset 関数や empty 関数を使って判定できますが、 isset 関数を使うことを推奨します。例:

$class = new stdClass();
if (!isset($class->name)) {
    echo '未定义属性name';
}
ログイン後にコピー
ログイン後にコピー
2. オブジェクト フィールドが null か未定義かを判断するメソッド

オブジェクト フィールドが null か未定義かを判断する場合、isset 関数または array_key_exists 関数を使用して、決定する。具体的な方法は次のとおりです。

isset 関数

  1. この関数は、変数が宣言されており、値が NULL でないかどうかを判断するために使用されます。
  2. $data = [
        'title' => null,
        'content' => '内容',
    ];
    if (!isset($data['title'])) {
        echo '未设置标题';
    }
    ログイン後にコピー

array_key_exists function

  1. この関数は、指定されたキー名が配列内に存在するかどうかを判断するために使用されます。キー名が存在する場合は true、存在しない場合は false を返します。
  2. $data = [
        'title' => null,
        'content' => '内容',
    ];
    if (!array_key_exists('title', $data)) {
        echo '未设置标题';
    }
    ログイン後にコピー
オブジェクトに特定の属性が存在するかどうかを確認したい場合は、isset 関数または property_exists 関数を使用して確認できます。具体的な方法は次のとおりです。

isset 関数

  1. この関数は、変数が宣言されており、値が NULL でないかどうかを判断するために使用されます。
  2. $class = new stdClass();
    if (!isset($class->name)) {
        echo '未定义属性name';
    }
    ログイン後にコピー
    ログイン後にコピー

property_exists function

  1. この関数は、オブジェクトに指定されたプロパティがあるかどうかを判断するために使用されます。
  2. $class = new stdClass();
    if (!property_exists($class, 'name')) {
        echo '未定义属性name';
    }
    ログイン後にコピー
3. 概要

PHP では、オブジェクト フィールドが null か未定義かを判断することは非常に重要なスキルであり、実際の開発では慎重に習得する必要があります。実際のニーズに応じて、isset 関数、array_key_exists 関数、property_exists 関数などを使用して判断することができます。さまざまなシナリオに適した方法が異なるため、不要なエラーを避けるために柔軟に使用する必要があります。

以上がPHP はオブジェクトフィールドが null か未定義かを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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