Неархаичный сброс массива? - PullRequest
2 голосов
/ 03 октября 2011

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

В любом случае, существует ли содержимое массива, выгруженного вертикальноПо аналогии с модой, используемой в руководстве по PHP:

Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

Я бы очень хотел знать, так как это было бы отличным способом сэкономить время.

Любые комментарии / предложения / ответы будутс благодарностью;) !!

Ответы [ 7 ]

6 голосов
/ 04 октября 2011

Если вы хотите не архаичную отладку, var_dump, echo и другое встроенное отображение данных - не лучший способ, xdebug и IDE, которая поддерживает отладку (netbeans, eclipse, aptana, ...) is.

Однако вы можете значительно улучшить читаемость var_dump, повторив тег pre перед ним:

<code>function dump($var)
{
   echo '<pre>';
   var_dump($var);
   echo '
';}

(обратите внимание, что результаты такого же типа можно получить, указав источник страницы вместо HTML-рендеринга)

1 голос
/ 04 октября 2011

Лично я использую пользовательскую функцию debug () и <pre>:

<code>function debug($val) {
    if (defined('DEBUG') && DEBUG) { // So debugging won't show on live.
        // Turn off debugs via debug=0 in url.
        if(!@$_REQUEST['debug'] && @$_REQUEST['debug'] !== 0){ // Can see a clean page by again by just appending a url parameter.
            $vals = func_get_args();
            foreach($vals as $val){
                    echo "<pre class='debug' style='font-weight:bold;font-size:1.1em;background-color:white;color:black;position:relative;z-index:10;clear:both;max-width:980px;overflow:auto'>";
                var_dump($val);
                echo "
";}}}}

Возможно, вы также захотите проверить http://xdebug.org/ Xdebug, который форматирует var_dumps для просмотра html. Я использовал это и в прошлом.

0 голосов
/ 04 октября 2011

Xdebug может заменить вывод простого текста var_dump () на красиво отформатированный / раскрашенный HTML. См http://xdebug.org/docs/display

0 голосов
/ 04 октября 2011

Кроме того, FirePHP может быть установлен и отправит отладочную информацию в firebug в вашем браузере следующим образом: FB::log('Log message');

0 голосов
/ 04 октября 2011
<code>echo '<pre>'.print_r($myValue, true).'
';
0 голосов
/ 04 октября 2011

Проблема в том, что PHP форматирует массив, используя символы новой строки, а не элементы 'br'. И поскольку по умолчанию Content-type равно text/html, браузер игнорирует символы новой строки, вы их не видите.

Есть два решения:

  1. Просмотр страницы источника
  2. Установите тип содержимого на text/plain:

    header('Content-type: text/plain');
    var_dump($some_array);
    
0 голосов
/ 04 октября 2011

«просмотр источника» в вашем браузере или

<code>echo '<pre>'; var_dump($var); echo '
';
...