Vademecum del buon programmatore
Questi sono piccoli consigli da prendere in considerazione quando
scrivete i vostri programmi PHP; vi aiutano nella stesura e nella
pulizia del codice, nel reperire informazioni e nel chiedere consiglio.
Variabili
E'
buona norma essere espliciti nella scrittura delle variabili in modo da
evitare "spiacevoli" duplicazioni e in modo da poterle riconoscere in
qualsiasi punto del vostro codice. Le variabili sono uno degli elementi
fondamentali della programmazione (in qualsiasi linguaggio) in quanto
vi permettono di immagazzinare e portare con voi in tutto il percorso
del programma dati che vi serviranno.
Le variabili si distinguono in due categorie principali:
- variabili semplici
- variabili array
Le
variabili semplici
sono dei contenitori singoli di dati, ovvero al loro interno possono
essere memorizzati solo valori in una unica locazione; la scrittura di
questo tipo di variabile avviene anteponendo semplicemente il simbolo
$
ad un nome: $lamiavariabile
Le
variabili array
invece sono dei contenitori "multipli" di dati, ovvero al loro interno
possono essere memorizzati dati e altri Array in diverse locazioni
(indici); anche per queste variabili basta anteporre il simbolo
$
ad un nome con la differenza che la parte finale del nome racchiude una
o più gruppi di parentesi quadre
[].
Le variabili array si suddividono a sua volta in 2 tipi,
array
semplici ed
array associativi.
Gli
array semplici hanno come indice sempre e solo
un valore numerico: $ilmioarray_semplice[3]
Gli
array associativi hanno come indice una stringa
alfanumerica: $ilmioarray_associativo['nome']
La
differenza tra i due tipi di array sta nel fatto che il secondo
è più
facile da gestire avendo associato un nome all'indice. Tutti gli array
associativi necessitano che il nome sia
sempre
racchiuso tra
apici (singoli o doppi non fa differenza). PHP tuttavia accetta indici
senza apici, anche se genera degli avvisi che se non vengono bloccati
tramite la configurazione di PHP appaiono a video ogni volta che un
array associativo viene scritto senza apici.
E' buona
abitudine utilizzare sempre gli apici!
Tutti i tipi di variabili (sia semplici che array) accettano come nome
delle stringhe contenenti: lettere da
a a
z,
numeri da
0 a
9, il trattino
(-) e il carattere di sottolineatura (underscore _ ). Non possono
contenere nessun altro carattere.
Ricordatevi che tutti i nomi delle variabili sono
case
sensitive, ovvero fanno differenza tra maiscole e minuscole:
scrivere $laMiaVariabile non è uguale
a scrivere $lamiavariabile. Per PHP sono due
variabili diverse.
Operazioni con variabili
Tutte
le variabili di PHP possono contenere sia valori stringa (caratteri
alfanumerici) sia valori numerici. In base al loro contenuto esistono
degli operatori aritmetici che ne permettono la manipolazione.
Se
il valore delle variabili è un valore numerico (intero o a
virgola
mobile) si possono eseguire tutte le più comuni operazioni
aritmetiche:
- somma: $valore1 + $valore2
- sottrazione: $valore1 - $valore2
- moltiplicazione: $valore1 * $valore2
- divisione: $valore1 / $valore2
- modulo: $valore1 % $valore2, ovvero divide i
due valori e restituisce il resto, esempio: 10%3
viene restituito 1
Se
invece il contenuto della variabile è alfanumerico l'unica
operazione
possibile è la somma definita "concatenazione" utilizzando
il punto (.):
$variabile1 . $variabile2
N.B.
se il contenuto delle due variabili è un contenuto numerico,
utilizzando la concatenazione vengono considerati come due stringhe,
esempio:
$variabile1 = 1;
$variabile2 = 2;
print $variabile1 . $variabile2; // stampa a video: 12
Stesura del codice
Quando
scriviamo un programma, è buona norma cercare di rendere
bello pulito e
leggibile i codice in modo da carpire a colpo d'occhio la
funzionalità
del codice ed eventuali errori, in modo che se qualcun'altro deve
metterci le mani o noi ci torniamo sopra dopo 12 mesi riusciamo a
leggere il codice senza difficoltà.
Per migliorare la stesura del nostro codice dobbiamo tenere a mente
alcuni piccoli consigli:
- usare sempre in modo ordinato l'identatura delle righe
if ( $a == $b ) {
if ( $c == $d ) {
print "ciao";
}
}
- abbondare sempre con gli spazi in modo da far risaltare le singole
istruzioni
strtoupper(substr(preg_match("![a-z]+]!i", $valore),0,2));
sicuramente diventa più leggibile a colpo d'occhi se scritto:
strtoupper( substr( preg_match("![a-z]+]!i", $valore), 0, 2));
- evitate di inserire variabili nelle stringhe e di usare la
concatenazione
$totale = "Ciao $nome, benvenuto nel sito $nomesito";
a colpo d'occhio si vede meglio se esistono variabili (e per far
lavorare meglio PHP) se usiamo la sintassi
$totale = "Ciao " . $nome . ", benvenuto nel sito " . $nomesito;
Inoltre PHP ha difficoltà ad interpretare gli array
all'interno di stringhe se questi sono array multidimensionali:
$totale = "Ciao $valore['utente']['nome'], benvenuto nel sito $valore['sito']['nomesito']";
genera un Parse Error e blocca l'esecuzione del programma.
- risparmiate dove potete righe di codice e risorse di sistema
$nome = $_POST['nome'];
$email = $_POST['email'];
print "Il tuo nome è: " . $nome . " e la tua email è: " . $email;
Non cambia niente se scrivete:
print "Il tuo nome è: " . $_POST['nome'] . " e la tua email è: " . $_POST['email'];
avete semplicemente utilizzato un array che viene generato da PHP...
risparmiate righe di codice inutile e se questi valori vi servono anche
in altre parti di codice, ad esempio le funzioni, non dovete renderle
globali (perchè già lo sono) e avete sott'occhio
sempre "da dove provengono".
Come reperire informazioni sui comandi
Il sito di PHP,
http://it.php.net
, è un manuale on-line sempre aggiornato con le ultime
modifiche e
ricco di commenti dei vari utenti con esempi pratici di come utilizzare
al meglio la risorsa e/o il comando.
E' inoltre suddiviso per
categorie di argomenti, quindi di facile consultazione. Permette
altresì di richiamare un comando direttamente dalla URL:
- se per esempio dobbiamo usare il comando mysql_connect
ma non ci ricordiamo come vengono inseriti i parametri, basta scrivere
http://it.php.net/mysql_connect
per accedere direttamente nella pagina di quel comando
Una
volta avuto accesso alla pagina specifica di un comando, nella sinistra
abbiamo un menù che racchiude tutti comandi utilizzabili con
MySQL.
Se
invece cerchiamo un comando per fare una particolare operazione e non
sappiamo come si chiama, possiamo accedere direttamente al sito di PHP
e fare una ricerca dei comandi per categoria: sappiamo che è
una
operazione sulle stringhe? Cerchiamo tutti i comandi che si usano per
operare sulle stringhe e li sfogliamo fino a trovare quello che a noi
serve.
Gli errori di esecuzione
Quando proviamo un
nostro script, può succedere che avvenga un errore di
esecuzione
(Error) o che ci appaia a video un avviso (Notice)... in entrambi i
casi il parser PHP oltre ad indicarci il tipo di errore (Parse, Syntax,
ecc) ci dice sempre la riga nella quale è avvenuto
l'errore/avviso.
Aprendo il nostro codice alla riga indicata dobbiamo semplicemente
cercare dove può essere l'errore:
-
di solito i Syntax error avvengono perchè abbiamo
dimenticato di
chiudere una parentesi, un apice, o abbiamo inserito degli apici dentro
altri apici senza usare il carattere di escape (\ backslash)
-
di solito i Parser error avvengono perchè abbiamo scritto
male un
comando, facciamo eseguire una operazione non valida, richiamiamo una
funzione inesistente o dimentichiamo il punto e virgola a fine riga
A
volte capita che PHP ci dia un errore all'ultima riga di codice: questo
avviene perchè abbiamo aperto da qualche parte una parentesi
graffa { e
non l'abbiamo mai chiusa!