spl_object_id

funkcja

Zwraca unikalny int będący identyfikatorem obiektu w danym procesie PHP. Id może być ponownie użyte po zniszczeniu obiektu.

spl_object_id(object $object): int

spl_object_id zwraca całkowitoliczbowy identyfikator obiektu przydzielony przez silnik PHP. W obrębie jednego procesu każdy żyjący obiekt ma unikalny id — gdy obiekt zostanie zniszczony (garbage collector), jego id może trafić do innego obiektu. Funkcja jest szybsza niż spl_object_hash i wygodna jako klucz tablicy (int zamiast stringa). Nie nadaje się do trwałej identyfikacji między żądaniami. Dostępna od PHP 7.2.

<?php
declare(strict_types=1);

$a = new stdClass();
$b = new stdClass();
$c = $a;  // ten sam obiekt co $a

var_dump(spl_object_id($a));  // np. int(1)
var_dump(spl_object_id($b));  // np. int(2)  — inny obiekt, inny id
var_dump(spl_object_id($c));  // int(1)      — ta sama instancja co $a

// Użycie jako klucz tablicy (np. mapa obiekt → wartość):
$mapa = [];
$mapa[spl_object_id($a)] = 'wartość dla $a';

// Uwaga: id może być ponownie użyte po unset:
$staryId = spl_object_id($a);
unset($a);
$nowy = new stdClass();
// spl_object_id($nowy) może być równe $staryId