Se state testando un programma e vedete che il tempo di caricamento è
stranamente lungo, nella maggioranza dei casi si tratta di errori in qualche
costrutto loop. È facile, soprattutto all'inizio, dimenticarsi per strada
qualche parametro o l'incremento di un contatore; così la condizione
rimane sempre vera e il loop diventa infinito (in realtà fortunatamente
termina dopo un periodo di tempo che si può impostare nel file php.ini
).
Il modo più veloce e semplice per fare il debug è inserire delle
echo()
prima e all'interno del loop in modo da monitorare il comportamento
delle variabili. Si possono anche commentare le righe e scommentarle una ad
una provando il comportamento del programma.
Per i newbie: che cosa si intende per commentare?
Si tratta dell'operazione di includere in commenti '//
' o '/*...
*/
' alcune parti del codice per evitare che vengano interpretate. In
questo modo è possibile scoprire quale parte del programma contiene un
bug.
Una delle esigenze più comuni in un programma è quella di verificare
se una certa condizione è vera oppure no; per esempio per vedere se due
variabili sono uguali si usa l’operatore ‘==
’: se $i == $c
allora la condizione è vera, altrimenti è falsa. Allo stesso modo
si può usare come condizione il valore booleano di qualsiasi variabile:
numeri, stringhe, array e oggetti. Vediamo come funziona:
Valori numerici: 0 è FALSO, qualsiasi altro valore è VERO
$x = 1;
if($x) // VERO
$x = 0;
if($x) // FALSO
Stringhe: una stringa vuota ("") è FALSO, qualsiasi altro
valore è VERO
$x = "Ciao";
if($x) // VERO
$x = "";
if($x) // FALSO
Attenzione: per le stringhe c’è una eccezione, lo zero
$x = "0";
if($x) // FALSO
Array: se è vuoto è FALSO, altrimenti è VERO
$x = array();
if($x) // FALSO
$x = array("a", "b", "c");
if($x) // VERO
Oggetto: FALSO se l’oggetto è vuoto (ovvero per esso non sono state definite
né proprietà né metodi), VERO se altrimenti.
Class MioOggetto {} // Questa classe è vuota
$x = new MioOggetto();
if($x) // FALSO
Class MioOggetto {
var $x = 1; // Questa variabile sarà valida solo all’interno di
questa classe
}
$x = new MioOggetto();
if($x) // VERO
Il PHP rende disponibili anche due costanti booleane, TRUE
e FALSE
.
TRUE
equivale all’intero 1, FALSE
equivale alla stringa
vuota (""
).
Attenzione! TRUE
e FALSE
sono due costanti, e per
questo non sono case-sensitive: true
, false
, True
e False
funzionano lo stesso.
Per chi programma in Visual Basic:
Il PHP potrebbe confondervi un po’ le idee perché non è necessario
dichiarare il tipo delle variabili e i tipi vengono assegnati automaticamente
in base al contesto. Tenete solo a mente che 0
e ""
sono falsi, tutto il resto è vero tranne che in rare eccezioni.
Indice | Pagina seguente >>