【PHP8.x】spl_object_id関数の使い方

作成日: 更新日:

spl_object_id関数は、引数として渡されたオブジェクトの一意な識別子(ID)を整数値として取得する関数です。このIDは、PHPの実行中にオブジェクトがメモリ上に存在する間、そのオブジェクトに対して常に同じ値が割り当てられます。異なるオブジェクトには異なるIDが割り当てられるため、この関数を利用することで、複数の変数が同じオブジェクトインスタンスを参照しているか、あるいはそれぞれ異なるオブジェクトインスタンスを参照しているかを識別することができます。

具体的には、あるオブジェクトが他のオブジェクトと同一であるかを確認したい場合や、オブジェクトそのものをキーとして扱う連想配列(配列のキーとしてオブジェクトを直接使用することはできませんが、このIDをキーとして利用することで擬似的に実現できます)を構築したい場合などに役立ちます。

このIDは、オブジェクトの内部的な識別子であり、そのオブジェクトがメモリから解放された後、同じIDが新しい別のオブジェクトに再利用される可能性はあります。しかし、オブジェクトが生存している間は、そのオブジェクト固有の識別子として安定して機能します。PHP 8.0以降のバージョンで利用可能であり、オブジェクトの同一性に関する厳密な比較や管理が必要な場面で活用できます。

基本的な使い方

構文(syntax)

<?php
$object = new stdClass();
$objectId = spl_object_id($object);
echo "オブジェクトID: " . $objectId;
?>

引数(parameters)

object $object

  • object $object: オブジェクトのIDを取得したい対象となるオブジェクトを指定します。

戻り値(return)

int

指定されたオブジェクトの一意の整数IDを返します。このIDは、PHPの実行中にのみ有効であり、オブジェクトのライフサイクルを識別するために使用されます。

【PHP8.x】spl_object_id関数の使い方 | いっしー@Webエンジニア