【PHP8.x】SplObjectStorage::contains()メソッドの使い方
containsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
containsメソッドは、SplObjectStorageオブジェクトが特定のオブジェクトを含んでいるかどうかを確認するメソッドです。
SplObjectStorageは、PHPの標準拡張機能であるSPL(Standard PHP Library)に含まれる、オブジェクトをキーとしてデータを管理するための特殊なコレクションクラスです。通常の配列とは異なり、オブジェクトそのものをキーとして利用し、各オブジェクトがユニークなキーとして扱われる点が特徴です。このSplObjectStorageに、複数のオブジェクトを格納しておくことができます。
このcontainsメソッドは、SplObjectStorageのインスタンスに対して呼び出され、引数として渡された任意のオブジェクトが、現在そのストレージ内に格納されているかどうかを効率的に調べることができます。メソッドを実行すると、指定されたオブジェクトがSplObjectStorage内に存在する場合にブール値のtrueを返し、存在しない場合にはfalseを返します。
オブジェクトの比較は、値が等しいかどうかではなく、厳密に同じインスタンスであるかどうか(同一のオブジェクトであるか)に基づいて行われます。したがって、たとえ同じプロパティと値を持つオブジェクトであっても、異なるインスタンスであればcontainsメソッドはfalseを返します。この機能は、特定のオブジェクトがコレクションに追加済みであるかを確認したい場合や、重複を避けてオブジェクトを管理したい場合などに非常に有用です。
構文(syntax)
1<?php 2$storage = new SplObjectStorage(); 3$objectToCheck = new stdClass(); 4 5$storage->contains($objectToCheck); 6?>
引数(parameters)
object $object
- object $object: 存在を確認したいオブジェクト
戻り値(return)
bool
指定したオブジェクトがSplObjectStorage内に存在するかどうかを真偽値(true/false)で返します。