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