В настоящее время нет способа сделать это в PHP, начиная с версии 5.3.6.
spl_object_hash () не делает то, что вам нужно - поскольку он перезагружает идентификаторы при удалении объектов, это приведет к ошибкам (например) объектно-реляционного преобразователя, пытающегося отслеживать объекты в сеансе.
Описание в верхней части страницы документации («Эта функция возвращает уникальный идентификатор для объекта. Этот идентификатор может использоваться в качестве хэш-ключа для хранения объектов или для идентификации объекта.») Неверно - правда в том, что раскрывается в примечании на этой странице: «Когда объект уничтожен, его хэш может быть повторно использован для других объектов», или, другими словами, функция не всегда возвращает уникальный идентификатор и может не всегда используется для хранения или идентификации объектов.
Техника, продемонстрированная в в этом комментарии , может работать в некоторых случаях, но она ненадежна и не будет работать согласованно, поскольку попытка доступа к неопределенному свойству вызовет магию __get () и __set () методы, результаты которых непредсказуемы.
В заключение, краткий ответ на ваш вопрос (к сожалению) «нет» - в PHP нет такого метода, и нет способа написать такой метод, который будет последовательно работать для любого объекта.
Если вы хотите, чтобы эта функция была добавлена в PHP, пожалуйста, проголосуйте и / или прокомментируйте здесь:
http://bugs.php.net/bug.php?id=52657