![](/img/trans.png)
[英]What is meant by backtrace in php why we use debug_backtrace() and debug_print_backtrace() functions in php?
[英]PHP Warning: print_r and debug_backtrace when passing a mysqli connection
我有一個非常復雜的系統,每次它要執行查詢時都要打開和關閉MySQLi連接-每個給定操作它要執行約40,000個操作(我知道效率很低)。 我決定在函數之間傳遞mysqli連接,以防止這種重復打開和關閉效率低下。
我的問題是:當查詢失敗時,我想通過電子郵件發送給自己debug_backtrace()
,其格式為易於閱讀的格式(因此我將其包裝在print_r()
)。 出於某種原因,我現在得到一個PHP警告,提示print_r(): Property access is not allowed yet in... on line XXX
行print_r(): Property access is not allowed yet in... on line XXX
,其中XXX行僅讀取addNotification("Backtrace: ".print_r(debug_backtrace(), true), "debug");
當回溯中傳遞的參數之一是mysqli_connect
對象時, print_r()
不喜歡debug_backtrace()
原因是什么? mysqli_connect是否缺少toString函數?
編輯經過更多的研究,我發現您可以在mysqli_connect
對象上調用print_r
或var_dump
,但是如果該對象是mysqli_close
d,則會引起此警告。 如果關閉並unset
,就可以了。
請參閱此處的示例。
http://php.net/manual/zh/function.debug-backtrace.php
它使用var_dump而不是print_r
我個人最喜歡的是var_export,因為它創建了php可讀格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.