Driver86
@Driver86
Немодератор toster.ru

Почему var_export «обрамляет» null-байт пустыми строками?

<?php
echo var_export("\0", true);

Выдаёт:
'' . "\0" . ''
Почему? Почему просто не
"\0"
?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Вы предполагаете слишком умную логику для глупой функции.
https://github.com/php/php-src/blob/PHP-7.2/ext/st...
var_export пытается вывести строку в одинарных кавычках, чтобы в ней не осуществлялись подстановки спецсимволов и другого счастья. Но null-байт поэтому же в одинарных кавычках вывести нельзя. Поэтому все \0 заменяются на ' . \"\\0\" . '
В предельном случае получаются как раз одинарные кавычки по краям результирующей строки и ' . \"\\0\" . ' в качестве основных данных. А проверять предварительно, что у нас всего-то и есть \0 в строке -- слишком частный случай.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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