簡體   English   中英

當我使用var_dump變量調試php時,總是在開始時輸出文件路徑嗎?

[英]When I debug php with var_dump variable it always outputs file path at the beginning?

我在PHP 7中使用Ubuntu。

PHP 7.0.5-3+donate.sury.org~xenial+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

當我使用var_dump顯示一些變量來調試PHP腳本時:

<?php
var_dump('tmp string');
var_dump(true);

以下是其輸出:

/var/www/example.com/test.php:3:string 'tmp string' (length=10)
/var/www/example.com/test.php:4:boolean true

為什么總是與以前的文件路徑一起輸出?

我希望它輸出如下:

string 'tmp string' (length=10)
boolean true

您看到的輸出來自Xdebug擴展。 (不帶擴展名的var_dump輸出純文本,未格式化的文本。)

從Xdebug 2.3開始,設置xdebug.overload_var_dump具有新的默認值2 ,該默認值會將文件名和行號添加到對var_dump任何調用的輸出中。 有關更多信息,請參閱文檔 我同意這沒什么用,尤其是對於簡單的輸出(例如短字符串/數字)。

要刪除文件名,可以在php.ini文件中將選項設置為舊值1

[xdebug]
xdebug.overload_var_dump = 1

我從關於該主題的搜索中獲得了最終結果,但是我繼續尋找其他替代方案,只是想補充一下我為其他人找到的內容。

從Xdebug> = 2.6版本開始,有一些選項可以修改var_dump中顯示的文件名的顯示。

// real output example of the %n specifier
courses_list.php:14:string 'tools' (length=5)

參考: https : //xdebug.org/docs/all_settings#filename_format

xdebug.filename_format = "[Specifier]"

類型:字符串,默認值:...%s%n,在Xdebug> = 2.6中引入

此設置確定Xdebug通過重載的xdebug_var_dump()(默認值:%f)呈現HTML堆棧跟蹤中的文件名的格式(默認值:...%s%n)和位置信息。

  • 說明符:%a

    • 含義:Ancester:兩個目錄元素和文件名
    • 示例輸出:mail / transport / mta.php
  • 說明符:%f

    • 含義:完整路徑
    • 示例:/var/www/vendor/mail/transport/mta.php
    • (默認設置)
  • 說明符:%n

    • 含義:名稱-僅文件名
    • 示例:mta.php
  • 說明符:%p

    • 含義父級-一個目錄元素和文件名
    • 示例:transport / mta.php
  • 說明符:%s

    • 含義:目錄分隔符
    • 示例:\\在Linux,OSX和其他類似Unix的系統上,/在Windows上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM