libalex
@libalex
Backend / Android Developer (Java, Kotlin)

Что означает индекс в выводе var_dump для объекта?

Объясните, пожалуйста, что означает индекс в выводе var_dump при скармливании ему объекта?
Например, если передать в var_dump объект соединения с БД (PDO), то получим:

object(PDO)[1]

у объектов, имеющих поля - далее следует список полей и их значений.
Что означает индекс 1 в данном случае? Для другого объекта получаю индекс 3.
Понимаю, что что-то элементарное, но никак не соображу и гугл, как ни странно, не помогает.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 3
Melkij
@Melkij
PostgreSQL DBA
А вы про какую версию спрашиваете? Синтаксис var_dump для объекта выглядит как: https://github.com/php/php-src/blob/PHP-7.2/ext/st...
%sobject(%s)#%d (%d) {

В самом начале возможен символ & - если это ссылка.
Второй %s - имя класса.
следующий %d - идентификатор объекта
последний %d - число свойств объекта

Что немного не похоже на object(PDO)[1]. Да и не менялся формат уже давно.
Ответ написан
DevMan
@DevMan
емнип, это просто внутренний идентификатор.
Ответ написан
libalex
@libalex Автор вопроса
Backend / Android Developer (Java, Kotlin)
На всякий случай оставлю это здесь, может кому пригодится.
Так форматирует вывод Xdebug: https://github.com/xdebug/xdebug/blob/d0ccf3649f0d...

Этот индекс - ни что иное, как Z_OBJ_HANDLE_P

Z_OBJ_HANDLE_P(var) - is the sequencial number that begins with 1 and increased by 1 for each object.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы