LA CAMPANA

C’è chi ha letto questa notizia prima di te.
Iscriviti per ricevere nuovi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam

Per mia comodità, ho scritto un analogo della funzione print_r. Ti mostrerò subito in cosa differisce:

AGGIORNAMENTO: aggiunto markup e stile per la corretta visualizzazione di array e oggetti vuoti.

AGGIORNAMENTO: aggiunta la visualizzazione del numero di elementi figli di un array o delle proprietà dell'oggetto (il numero a destra del nome della chiave dell'array).

AGGIORNAMENTO: aggiunta la possibilità di comprimere gli array figli di un array (fare clic sul numero di figli).

AGGIORNAMENTO: aggiunta la visualizzazione del file e della riga da cui è stata chiamata la funzione.

AGGIORNAMENTO: Ora i parametri possono essere passati a una funzione non come array, ma individualmente e in qualsiasi ordine.

Cosa può fare la funzione

  • visualizzare variabili scalari, array, oggetti, risorse;
  • evidenziare il tipo di dati a colori;
  • evidenziare con il colore l'area di visibilità degli immobili;
  • Visualizzare esplicitamente i valori delle variabili booleane e NULL ;
  • visualizzare il tipo di risorsa;
  • tagliare automaticamente le linee lunghe;
  • visualizzare l'array sotto forma di albero, con la possibilità di comprimere i nodi (per il bene di cui tutto questo è stato avviato);
  • visualizzare l'albero compresso o espanso fino ad una determinata chiave;
  • visualizzare il file e la riga da cui è stata chiamata la funzione;
  • rilevare il tempo trascorso tra due chiamate di funzione;
  • cercare testo nelle chiavi e nei valori dell'array.

E soprattutto

Nessuna dipendenza esterna!

Come usare

È necessario includere il file nf_pp.php

Includere "nf_pp.php";

e puoi usare

Pp($val);

Opzioni

Un array di parametri può essere passato come secondo argomento alla funzione.

Pp($val, array("trimString" => 0));

Sono disponibili le seguenti opzioni:

AGGIORNAMENTO: Mi sono stancato di passare parametri a una funzione in un array e ho fatto in modo che potessero essere passati direttamente in questo modo e in qualsiasi ordine. Esempio:

Pp($val, 300, "cirillico");

Pp($val, "cirillico", 0);

Pp($val, "cirillico");

I parametri sono determinati dal tipo. Se viene passato un numero, allora è trimString , se viene passato un parametro booleano, allora è autoCollapsed ; se è una stringa o un array, allora è autoOpen .

Esempi di utilizzo

Emetti semplicemente l'array

Pp($val);

Visualizza l'array in formato compresso

Pp($val, array("autoCollapsed" => TRUE));

Stampa l'array espanso ai tasti “c” e “subarray”

Pp($val, array("autoOpen" => array("c", "subarray")));

Stampa l'array espanso al tasto “c”

Pp($val, array("autoOpen" => array("c")));

Pp($val, array("autoOpen" => "c"));

stampa_r— Stampa informazioni leggibili su una variabile

Descrizione

stampa_r() visualizza le informazioni su una variabile in formato leggibile dall'uomo.

stampa_r() , var_dump() E var_export() può anche mostrare attributi protetti e privati ​​degli oggetti in PHP 5. Elementi statici le classi non verranno visualizzate.

Dovrebbe essere ricordato stampa_r() imposterà il puntatore interno dell'array alla sua fine. Utilizza la funzione reset() per impostarlo all'inizio dell'array.

Elenco dei parametri

espressione

Espressione da visualizzare sullo schermo.

ritorno

Se vuoi intercettare l'output stampa_r(), utilizzare il parametro ritorno. Se il suo valore è VERO, Quello stampa_r() restituirà il risultato dell'output anziché l'output al browser (operazione eseguita per impostazione predefinita).

Valori restituiti

Se i valori di tipo vengono passati alla funzione corda, intero O galleggiante, verrà stampato il valore stesso. Se viene passato un array vettore, i valori verranno stampati in un formato che mostra le chiavi e gli elementi dell'array. Un formato di output simile viene utilizzato per gli oggetti.

Note

Commento:

Questa funzione utilizza il buffering dell'output interno con questo parametro, quindi non può essere utilizzata all'interno di una funzione di callback ob_start().

Elenco delle modifiche

Esempi

Esempio n.1 Esempio di utilizzo stampa_r()

$a = array ("a" => "mela" , "b" => "banana" , "c" => array ( "x" , "y" , "z" )); 
stampa_r($a);
?>

Risultato dell'esecuzione questo esempio:

Array ([a] => mela [b] => banana [c] => Array ( => x => y => z))

L'ultima volta abbiamo discusso l'argomento con te array in php, e oggi analizzeremo una funzione chiamata stampa_r(). Questa funzioneè una funzione di debug ed è pensata per consentirci di visualizzare le informazioni su una variabile in modo conveniente. Perché ho toccato gli array all'inizio dell'argomento e questo perché è meglio visualizzare gli array utilizzando questa funzione. Ora vedrai questo.

$array = array( 5, 23, "Denis") ;
stampa_r($array) ;
?>

Abbiamo utilizzato l'array dell'ultima lezione e l'abbiamo applicato a funzione print_r. Non vedo il punto nel mostrare il risultato dell'esecuzione di questa funzione, basta scrivere questo codice e guardare il risultato nel browser. Lì vedremo parola chiave, e gli indici e i loro valori verranno elencati in sequenza tra parentesi. In questo modo possiamo esaminare anche gli array più grandi con una riga. Questo è tutto quello che volevo dirti su questa funzione. Ecco come è venuto fuori l’articolo piccolo, semplice e, soprattutto, utile di oggi. Arrivederci!

10 anni fa

Fai attenzione quando usi la stampa. Poiché print è un costrutto del linguaggio e non una funzione, le parentesi attorno all'argomento non sono necessarie.
Infatti, l'uso delle parentesi può causare confusione con la sintassi di una funzione e DOVREBBE essere omesso.

La maggior parte si aspetterebbe il seguente comportamento:
if (print("foo") && print("bar")) (
}
?>

Ma poiché le parentesi attorno all'argomentazione non sono necessarie, vengono interpretate come parte dell'argomentazione.
Ciò significa che l'argomento della prima stampa è

("foo") && print("bar")

e l'argomento della seconda stampa è giusto

Per il comportamento previsto del primo esempio è necessario scrivere:
if ((stampa "pippo" ) && (stampa "barra")) (
// "foo" e "bar" sono stati stampati
}
?>

Allora cosa dovresti scegliere per stampare il tuo testo? Ho scoperto molte cose scrivendo questo.

Innanzitutto, va notato che le parole chiave print ed echo sono intercambiabili, dal punto di vista delle prestazioni. I tempi mostrano che uno è probabilmente uno pseudonimo dell'altro. Quindi usa quello con cui ti senti più a tuo agio.

In secondo luogo, se ti sei mai chiesto quale fosse la migliore, la risposta definitiva sono le virgolette singole. Le virgolette singole sono almeno quattro volte più veloci in qualsiasi situazione. Le virgolette doppie, sebbene più convenienti, pongono un problema di prestazioni discutibilmente significativo quando si producono enormi quantità di dati.

Terzo, stai lontano da heredoc e stai assolutamente lontano da [s]printf. Sono lenti e le alternative ci sono.

NON ESEGUIRE LO SCRIPT SU INTERNET! Eseguilo invece da localhost. Per impostazione predefinita, lo script restituisce circa 45 megabyte di testo in un commento html nella parte superiore della pagina. Il benchmark dovrebbe durare circa 45 secondi. Se è troppo lungo, puoi modificare la quantità di iterazioni su un numero inferiore (i risultati si ridimensionano accuratamente fino a circa 1.000 iterazioni).

PHP è vitale funzioni necessarie, di cui lo sviluppatore semplicemente non può fare a meno. Parleremo di print_r e un po' di var_dump :)

Perché sono necessari print_r e var_dump?

stampa_r più spesso utilizzato per gli array e il compito principale è scoprire esattamente quali chiavi (se si tratta di un array associativo o multidimensionale con un ampio livello di nidificazione) e valori sono presenti nell'array. È scritto come segue:

Sulle nostre schermate apparirà il seguente risultato:

Matrice ( => 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9)

Nonostante la sua semplicità, data matrice difficile da leggere, ma se la sua struttura consisteva in più livelli, trovalo informazioni necessarie sarebbe molto difficile. Fortunatamente, c'è un tag in HTML che può aiutare in questo, the pre:

Eco"

"; stampa_r($arg); echo "
";

Come puoi vedere dal codice, stampa_rè scritto tra i pre tag e come risultato vediamo la seguente immagine:

Matrice ( => 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9)

Caratteristica dell'etichetta pre Un'altra cosa è che mostra tutti i caratteri degli spazi bianchi, se specifichi molti spazi, vengono scritti come uno solo:
"Per impostazione predefinita, qualsiasi numero di spazi consecutivi nel codice viene mostrato come uno solo nella pagina web."
Cioè, questa voce:

Ciao, come stai?

Ciao, come stai?

Per gli array, penso che print_r sia lo strumento numero uno :)

Perché è necessario var_dump?

Per le variabili regolari che contengono stringhe, numeri, ecc. C'è modi semplici produzione - eco E stampa. Ma a volte questo non basta, in PHP ogni valore ha il proprio tipo. C'è una caratteristica davvero spiacevole: il tipo può cambiare e la voce:

Eco $a = 15 + "19";

Produrrà il seguente valore:

Sebbene abbiamo superato un numero e una stringa. var_dump ti permette di scoprire a quale tipo di dati appartiene il valore:

int è l'abbreviazione di integer, un numero intero. Non è più difficile da scrivere di print_r:

Eco"

"; var_dump($arg); echo "
";

Il tipo di dati è una cosa importante, ma personalmente I stampa_r Lo uso molto più spesso.

print_r e var_dump in 1C-Bitrix

Bitrix ha un file che viene eseguito ogni volta che viene caricata la pagina - init.php, e per non scrivere molto codice ogni volta, puoi scrivere 2 semplici funzioni:

"; stampa_r($arg); echo ""; ) funzione vd($arg) ( echo "

"; var_dump($arg); echo "
"; }

Dopo la registrazione, puoi passare una variabile e, soprattutto, un array. La voce del bando sarà la seguente.

LA CAMPANA

C’è chi ha letto questa notizia prima di te.
Iscriviti per ricevere nuovi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam