Nieuwe Print_r() functie met objecten ondersteuning

Door Toby hinloopen, 19 jaar geleden, 5.397x bekeken

Een functie die variable dumpt. Deze variable kan bestaan uit objecten, strings, array's en zelfs functies. Echter, de functie wordt enkel weergegeven als "function(){}".

De functie geeft variablen en variable namen ook een kleurtje in HTML en via een HTML-title-tip is te lezen wat de volledige naam is.

(je houdt je muis stil op de WAARDE van de variable en de volledige variable naam zal te lezen zijn.)

De output is copy-pasteable als valid JSON. Kan ook gebruikt worden als JSON syntax highlighter.

voorbeeld output:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?

response = {
  boards:[
    0:{
      id:0,
      settings:{
        gridsize:{
          x:6,
          y:12,
        },

        interval:{
          raise:2000,
          fall:100,
          clear:100,
          swap:100,
        },
      },

      blocks:[
        0:{
          id:0,
          gridposition:{
            x:0,
            y:0,
          },

          griddimension:{
            x:1,
            y:1,
          },

          fall:{
            enabled:true,
            allowed:true,
            possible:false,
          },

          swap:{
            enabled:true,
            allowed:true,
            possible:false,
          },

          match:{
            enabled:true,
            allowed:true,
            possible:false,
            id:0,
          },

          move:{
            x:function(by) {},
            y:function(by) {},
          },

          resize:{
            x:function(to) {},
            y:function(to) {},
          },

          destroy:function() {},
          onmove:function() {},
          onresize:function() {},
          ondestroy:function() {},
        },
      ],

      block:function(status) {},
      fillrandom:function(rows, offset) {},
    },
  ],

  settings:{
    board:{
      gridsize:{
        x:6,
        y:12,
      },

      interval:{
        raise:2000,
        fall:100,
        clear:100,
        swap:100,
      },
    },
  },

  board:function(settings) {},
};


?>

De bovenstaande syntax highlighting is OOK van toepassing bij de functie, alleen dan zijn er iets meer kleuren. Zo zijn getallen zwart en array-keys ook, in tegenstelling tot het huidige blauw.


LVL en HISTORY zijn variable die meegegeven bij recursief gebruik van de functie. Niet invullen dus. Als je wilt kan je echter bij "HISTORY" de naam van de variable invullen die je checkt. Dan veranderd "this" in de variablenaam.

UPDATES:
toegevoegd: boolean support.
toegevoegd: "variablenaam = "
aangepast: NULL wordt nu niet meer weergegeven als leeg object.
aangepast: functies's argumenten worden nu weergegeven. (zie voorbeeld)

=================================================
=================================================
=================================================
=================================================

TIP/handigheidjes bij javascript debug en development:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form style="margin:0;padding:0;" onsubmit="try{$('debug2').innerHTML = print_r(eval($('execinput').value),0,$('execinput').value.toString());}catch(e){$('debug2').innerHTML = print_r(e,0,'error');}$('execinput').value = '';return false;"><input id="execinput" type="text" style="width:90%;font-family:lucida console, courier new, courier;font-size:10pt;"/><input style="font-family:lucida console, courier new, courier;font-size:10pt;width:9%;" type="submit" value="EXEC"/><pre id="debug2" style="margin:0;padding:0;width:100%;overflow:auto;display:block;max-height:200px;border:#ddd 1px solid;text-align:left;font-family:lucida console, courier new, courier;font-size:10pt;">Exec a command to view its source.</pre></form>


Plaats de bovenstaande HTML code eens in je document.

De functie $() is wel vereist voor de bovenstaande HTML code. Deze zit in mootools of kan je zelf toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function $(id) {
  return document.getElementById(id);
}


Met de bovenstaande HTML code heb je een kleine javascript console. Persoonlijk vind ik deze handiger dan een javascript console van de browser.

Gebruik:
-typ een variable en druk op ENTER. De bron wordt dan weergegeven.
of
-typ een functie en druk op enter. Deze functie wordt nu uitgevoert en zijn response wordt weergegeven.

echt heel handig bij grotere JS applicaties. Tot slot moet firebug niet ontbreken bij javascript development.

Om IE te debuggen kan je IE8 downloaden en op F12 drukken. Je krijgt dan een javascript en HTML debugger, net als firebug. Zo kan je makkelijker zien wat die kut browser nu weer fout doet.

Vergeet niet IE8 in IE7 emulatie te laten draaien.
Houdt er wel rekening mee dat de javascript engine - zelfs in IE7 emulatie - afwijkt van die van IE7.

Voorbeeld: http://none

Gesponsorde koppelingen

PHP script bestanden

  1. nieuwe-printr-functie-met-objecten-ondersteuning

 

Er zijn 3 reacties op 'Nieuwe printr functie met objecten ondersteuning'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


19 jaar geleden
 
0 +1 -0 -1
"Zo kan je makkelijker zien wat die kut browser nu weer fout doet."

Hehe, dat je het uberhaupt zegt vind ik al knap van je ;-)

Anyway, zit er nice uit. Toevallig een demo om te testen?
Peter
peter
19 jaar geleden
 
0 +1 -0 -1
juist ja, infeite hetzelfde als firefox plugin firebug?
Toby hinloopen
toby hinloopen
19 jaar geleden
 
0 +1 -0 -1
@ peter:
ja, alleen heb je nu geen plugin nodig en heb je het direct in je website, wat toch wat makkelijker is in sommige gevallen.

Zelf gebruik ik met een interval van 50ms zodat ik live de veranderingen van variablen kan bijhouden.

@ chris:
er staat een heel mooi voorbeeld in de omschrijving.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. nieuwe-printr-functie-met-objecten-ondersteuning

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.