Предупреждение PHP: print_r и debug_backtrace при передаче соединения mysqli

У меня есть очень сложная система, которая открывала и закрывала соединения MySQLi каждый раз, когда она хотела выполнить запрос — из которых она выполняла около 40000 операций на каждую заданную операцию (я знаю, что она неэффективна). Я решил передать mysqli-соединение между функциями, чтобы предотвратить эту неэффективность многократного открытия и закрытия.

Моя проблема заключается в следующем: когда запрос не удается, я хотел бы отправить себе по электронной почте debug_backtrace(), отформатированный в удобном для чтения формате (поэтому я print_r()). По какой-то причине я теперь получаю предупреждение PHP, которое говорит print_r(): Property access is not allowed yet in... on line XXX где строка XXX просто читает addNotification("Backtrace: ".print_r(debug_backtrace(), true), "debug");

Есть ли какая-то причина, по которой print_r() не любит debug_backtrace() когда один из переданных параметров в backtrace является mysqli_connect объект? В mysqli_connect отсутствует функция toString?

РЕДАКТИРОВАТЬ После небольшого исследования я обнаружил, что вы можете позвонить print_r или же var_dump на mysqli_connect объект, но если этот объект mysqli_closed это вызывает это предупреждение. Если он закрыт и unset это нормально.

0

Решение

Смотрите пример здесь.

http://php.net/manual/en/function.debug-backtrace.php

он использует var_dump вместо print_r

мой личный фаворит — var_export, потому что он создает читаемый формат php.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]