DerevoXP
@DerevoXP
Everlasting student

Ошибка в документации xdebug?

Всем доброго времени суток! Как-то так нечаянно получилось, что по цепочке "Вопросы к собеседованию" (параграф Copy-on-write) -> статья с более детальным объяснением -> документация PHP -> документация расширения hdebug я обнаружил несоответствие теории и практики. Согласно документации, код

$a = "new string";
xdebug_debug_zval('a');


Должен выводить что-то вроде:

a: (refcount=1, is_ref=0)='new string'

Но по факту (на сервере стоит PHP 8.0.6 TS) в консоль выводится

a: (interned, is_ref=0)='new string'

А код

$a = array(1, 2, 3);
    $b =& $a;
    $c =& $a[2];

    xdebug_debug_zval('a');
    xdebug_debug_zval("a[2]");


который по документации должен выдавать

a: (refcount=2, is_ref=1)=array (
	0 => (refcount=1, is_ref=0)=1, 
	1 => (refcount=1, is_ref=0)=2, 
	2 => (refcount=2, is_ref=1)=3)
a[2]: (refcount=2, is_ref=1)=3


по факту выдаёт

a: (refcount=2, is_ref=1)=array (
    0 => (refcount=0, is_ref=0)=1,
    1 => (refcount=0, is_ref=0)=2,
    2 => (refcount=2, is_ref=1)=3)
a[2]: (refcount=2, is_ref=1)=3


Не то, чтобы меня это очень сильно волновало, но всё таки: в чём может быть причина?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
причина в том что в документации не актуальный пример (можете создать issue и помочь улучшить документацию)

"interned" появилось с xdebug 3.0.0beta1
https://bugs.xdebug.org/bug_view_page.php?bug_id=0...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы