<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 調試方法 [上一頁](132.html "上一頁")[下一頁](134.html "下一頁") 調試模式并不能完全滿足我們調試的需要,有時候我們需要手動的輸出一些調試信息。除了本身可以借助一些開發工具進行調試外,ThinkPHP還提供了一些內置的調試函數和類庫。### 變量調試 輸出某個變量是開發過程中經常會用到的調試方法,除了使用php內置的var_dump和print_r之外,ThinkPHP框架內置了一個對瀏覽器友好的var_dump方法,用于輸出變量的信息到瀏覽器查看。dump 瀏覽器友好的變量輸出用法dump($var, $echo=true, $label=null, $strict=true)參數var(必須):要輸出的變量,支持所有變量類型 echo(可選):是否直接輸出,默認為true,如果為false則返回但不輸出 label(可選):變量輸出的label標識,默認為空 strict(可選):輸出變量類型,默認為true,如果為false則采用print\_r輸出返回值如果echo參數為false 則返回要輸出的字符串使用示例:`$Blog?=?D("Blog");<br class="calibre5"></br>$blog?=?$Blog->find(3);<br class="calibre5"></br>dump($blog);`在瀏覽器輸出的結果是:`array(12)?{<br class="calibre5"></br>??["id"]???????????=>?string(1)?"3"<br class="calibre5"></br>??["name"]?????????=>?string(0)?""<br class="calibre5"></br>??["userId"]???????=>?string(1)?"0"<br class="calibre5"></br>??["categoryId"]???=>?string(1)?"0"<br class="calibre5"></br>??["title"]????????=>?string(4)?"test"<br class="calibre5"></br>??["content"]??????=>?string(4)?"test"<br class="calibre5"></br>??["cTime"]????????=>?string(1)?"0"<br class="calibre5"></br>??["mTime"]????????=>?string(1)?"0"<br class="calibre5"></br>??["status"]???????=>?string(1)?"0"<br class="calibre5"></br>??["readCount"]????=>?string(1)?"0"<br class="calibre5"></br>??["commentCount"]?=>?string(1)?"0"<br class="calibre5"></br>??["tags"]?????????=>?string(0)?""<br class="calibre5"></br>}`### 性能調試 開發過程中,有些時候為了測試性能,經常需要調試某段代碼的運行時間或者內存占用開銷,系統提供了一些方法可以很方便的獲取某個區間的運行時間和內存占用情況。debug\_start 區間調試開始(記錄初始時間和內存占用)用法debug\_start($label='')參數label(可選):區間的label標識,默認為空返回值無debug\_end 區間調試結束(記錄區間結束時間和內存占用 并輸出結果)用法debug\_end($label='')參數label(可選):區間的label標識,默認為空, 必須和debug\_start的label對應才能輸出正確的區間結果返回值無注意:debug_start和debug_end 方法中的內存占用輸出需要環境支持memory_get_usage方法,否則只會顯示時間信息。 使用示例:`debug_start('run');<br class="calibre5"></br>$blog?=?D("Blog");<br class="calibre5"></br>$blog->select();<br class="calibre5"></br>debug_end('run');`會輸出下面的運行信息:`Process?run:?Times?0.007730s?Memories?76?k`如果僅僅需要調試時間開銷,還可以使用內置的G函數來更方便實現G 用于記錄和統計時間(微秒)用法G($start,$end='',$dec=4)參數start(必須):起始位置標識 end(可選):記錄結束標記并統計時間 dec(可選):調試時間的統計精度,默認為小數點后4位返回值如果end為空或者是一個浮點數, 無返回值。 如果end是一個字符串,則返回從start到end位置的使用時間。使用示例:`G('run');<br class="calibre5"></br>$blog?=?D("Blog");<br class="calibre5"></br>$blog->select();<br class="calibre5"></br>echo?G('run','end').'s';`除了上面的 函數外,系統還提供了一個擴展調試類DebugDebug::mark 標記調試位(并記錄該位置的時間和內存占用)用法Debug::mark($name)參數name(必須):調試標記位的name標識返回值無Debug::useTime 統計區間標記調試位的使用時間用法useTime($start,$end,$decimals = 6)參數start(必須):調試開始位置標識 end(必須):調試結束位置標識 decimals(精度):調試時間的統計精度默認為小數點后6位返回值區間位置的使用時間(字符串)\[table\]Debug::useMemory 統計區間標記調試位的內存占用用法useMemory($start,$end)參數start(必須):調試開始位置標識 end(必須):調試結束位置標識返回值區間位置的內存占用(字符串)\[table\]Debug::getMemPeak 統計區間標記調試位的內存占用峰值用法getMemPeak ($start,$end)參數start(必須):調試開始位置標識 end(必須):調試結束位置標識返回值區間位置的內存占用峰值(字符串)要使用Debug類調試的話,首先需要導入Debug類,Debug類位于擴展目錄下面的Library/ORG/Util/Debug.class.php ,所以首先要導入:`import('ORG.Util.Debug');<br class="calibre5"></br>Debug::mark('run');<br class="calibre5"></br>$blog?=?D("Blog");<br class="calibre5"></br>$blog->select();<br class="calibre5"></br>Debug::mark('end');<br class="calibre5"></br>echo?Debug::useTime('run','end').'s';<br class="calibre5"></br>echo?Debug::useMemory('run','end').'kb';`### 斷點調試 憑借強大的頁面Trace信息功能支持,ThinkPHP可以支持斷點調試功能。 我們只需要在不同的位置對某個變量進行trace輸出即可,例如:`$blog?=?D("Blog");<br class="calibre5"></br>$vo?=?$blog->create();<br class="calibre5"></br>trace('create?vo',$vo);<br class="calibre5"></br>$vo?=?$blog->find();<br class="calibre5"></br>trace('find?vo',$vo);`### 錯誤調試 如果需要我們可以使用下面的方法輸出錯誤信息并中斷執行: halt($msg)//輸出錯誤信息,并中止執行### 模型調試 在模型操作中 ,為了更好的查明錯誤,經常需要查看下最近使用的SQL語句,我們可以用getLastsql方法來輸出上次執行的sql語句。例如:`$User?=?M("User");?//?實例化User對象<br class="calibre5"></br>$User->find(1);<br class="calibre5"></br>echo?$User->getLastSql();`輸出結果是 SELECT * FROM think_user WHERE id = 1 新版每個模型都使用獨立的最后SQL記錄,互不干擾,但是可以用空模型的getLastSql方法獲取全局的最后SQL記錄。`$User?=?M("User");?//?實例化User模型<br class="calibre5"></br>$Info?=?M("Info");?//?實例化Info模型<br class="calibre5"></br>$User->find(1);<br class="calibre5"></br>$Info->find(2);<br class="calibre5"></br>echo?M()->getLastSql();<br class="calibre5"></br>echo?$User->getLastSql();<br class="calibre5"></br>echo?$Info->getLastSql();`輸出結果是 SELECT * FROM think_info WHERE id = 2 SELECT * FROM think_user WHERE id = 1 SELECT * FROM think_info WHERE id = 2 getLastSql方法只能獲取最后執行的sql記錄,如果需要了解更多的SQL日志,可以通過查看當前的頁面Trace或者日志文件。 注意:Mongo數據庫驅動由于接口的特殊性,不存在執行SQL的概念,因此SQL日志記錄功能是額外封裝實現的,所以出于性能考慮,只有在開啟調試模式的時候才支持使用getLastSql方法獲取最后執行的SQL記錄。 [上一頁](132.html "上一頁")[下一頁](134.html "下一頁")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看