Ed eccoci finalmente arrivati alla terza lezione del corso php. Da come avrai potuto ben capire dal titolo, oggi tratteremo molte questioni che abbiamo introdotto già nella seconda lezione.
Come abbiamo fatto nella scorsa lezione, inizieremo partendo con la forma condizionale, importante per andare a vedere, successivamente, tutti i contenuti della lezione.
Forma condizionale
Nella lezione precedente abbiamo visto dettagliatamente la forma condizionale semplice, composta da un controllo di una sola condizione. Abbiamo visto che se la condizione da verificare dovesse risultare falsa, quindi non sarebbe confermata, si può far eseguire un blocco di istruzioni alternativo, chiamato else.
Quindi, se io devo controllare che la variabile $value abbia come valore 2, ma la condizione risulta negativa, viene eseguito il blocco else. Questo blocco di istruzioni alternativo, ha però una grande limitazione, ovvero quella di non poterla controllare. Questo vuol dire che se $value non è uguale ha 2, allora else interverrà per tutti i valori che avrà questa variabile, quindi 3, 1, 4, ecc… fino all’infinito. Ogni valore va bene. Ma se io, scoprendo che $value non è uguale a due, come faccio a fare in modo che il programma controlli se $value è uguale a 3, e di conseguenza eseguire altre istruzioni? Beh è molto semplice ed interviene una nuova forma sintattica che unisce l’istruzione else con if.
Vediamo come:
Questo piccolo programma controlla innanzi tutto se il valore della variabile è pari a 2. Se è così stampa: Il valore della variabile è 2
Se non è così, e quindi la condizione ha un esito falso, passa a controllare se il valore della variabile è pari a 3. Se è così stampa: Il valore della variabile è 3
Se anche quest’ultima condizione risulta falsa, passa ad eseguire il blocco else, che come dicevamo nella scorsa lezione, non è obbligatorio. Questo blocco di istruzioni si esegue per qualsiasi altro valore, al di fuori di 2 e 3 della variabile. Quindi stampa: La variabile non ha come valore ne 2, ne 3
Facciamo un altro esempio:
L’esempio è praticamente uguale al precedente, l’unica cosa è che abbiamo cambiato operatori di controllo. Questi due operatori non li abbiamo ancora visti, e uniscono il simbolo di maggioranza o di minoranza e l’uguale. Questi due operatori hanno il seguente significato:
- Maggiore uguale -> >=
- Minore uguale -> <=
Ora vediamo di complicare leggermente di più le cose.
Se io dovesi controllare, in una sola condizione, quindi in un solo blocco if, il valore di due variabili e nel caso queste due variabili abbiano il valore che a me interessa, eseguire le istruzioni contenute nel blocco if, come posso fare?
Probabilmente ci avrai capito poco, per questo motivo vediamo di vedere in modo più semplice questa richiesta.
Mettiamo ci sia la necessità in un unico controllo, di verificare il valore di due o più variabili e nel caso corrispondano ai valori stabiliti, vengano eseguite le istruzioni contenute nel blocco if. Per farlo, si possono usare due diversi operatori
- && -> Operatore che consente di controllare due o più condizioni. Perché la condizione sia verificata, tutte le condizioni che usano questo operatore devono essere verificate. Anche se solo una non risulta vera, l’intera condizione risulterà falsa
- || -> Operatore che consente di controllare due o più condizioni. Perché la condizione sia verificata, ci deve essere almeno una condizione, tra tutte quelle sotto questo operatore, che deve essere verificata. Ne basta solo una, perché la condizione risulti verificata.
Vediamo la sintassi di questi due operatori e della loro applicazione, con un esempio pratico.
Questa è la sintassi del primo operatore, caratterizzato dall’unione di due e commerciali. In questo caso, se tutte e due i controlli delle due condizioni sono verificati, allora verrà stampato il messaggio La condizione è stata verificata con successo altrimenti verrà stampato il messaggio La condizione non è stata verificata.
Esempio pratico con l’operatore ||
In questo caso se almeno una condizione è verificata, verrà stampato il messaggio La condizione è stata verificata con successo altrimenti, in caso contrario, verrà stampato il messaggio La condizione non è stata verificata.
Voglio ricordare che con questi due operatori, è possibile controllare un numero infinito di condizioni.
Una cosa che non abbiamo ancora detto è che è possibile usare entrambi gli operatori all’interno di una stessa condizione. Infatti basterà realizzare un sistema logico utilizzando le parentesi tonde, sfruttando le regole base della matematica, riguardanti la priorità di calcolo dei valori.
Vediamo un esempio pratico.
In questo caso, all’interno della prima parentesi all’interno della forma condizionale, verranno effettuati due controlli sotto l’operatore &&. Se entrambi i controlli vengono verificati, allora la condizione viene verificata. Altrimenti no. Se viene verificata, il risultato prodotto dalla parentesi tonda contenuta della condizionale prenderà il valore di vero. A questo punto questo risultato viene affiancato da un’altra condizione, sotto l’operatore ||. Se almeno una delle due condizioni risulta verificata, allora viene stampato il messaggio La condizione è stata verificata altrimenti, in caso contrario, verrà stampato il messaggio La condizione non è stata verificata.
Alla fine è solo tutta una questione di logica. Una volta appreso questo tipo di sistema, risulterà molto facile programmare utilizzando la forma condizionale.
Vettori
Nella seconda lezione, abbiamo accennato l’esistenza dei vettori. Vediamo ora di capire cosa sono e come funzionano. In questa lezione li vedremo in modo base. Li approfondiremo quando tratteremo della forma iterativa, che andremo ad affrontare più avanti nel corso.
I vettori funzionano come le variabili. La loro differenza è che una variabile può memorizzare un solo ed unico valore, invece i vettori possono memorizzare un numero infinito di valori.
I vettori funzionano come una sorta di sistema a cella. Ogni cella contiene un valore. Ogni cella è identificata da un valore numerico o da una parola. Un po’ come abbiamo visto con $_POST, dove, possiamo richiamare i dati inseriti digitando il nome della cella di identificazione, che corrisponde al nome del pulsante submit che l’utente è andato a premere durante l’esecuzione del programma.
I vettori quindi sono veramente molto importanti per gestire grandi quantità di dati in poche operazioni. Per poter gestire un vettore con un processo automatico, si deve usare la terza forma principale della programmazione, ovvero la forma iterativa. Altrimenti, dato che non abbiamo ancora visto questo metodo di programmazione, usiamo un metodo di gestione manuale.
Come qualsiasi variabile, anche un vettore necessita di essere dichiarata, inizializzata e infine richiamata per poterla usare. Per dichiarare un vettore si deve sempre usare il simbolo del dollaro, seguito dal nome che si vuole dare al vettore. Proprio come si fa con una normale variabile.
Ciò che distingue un vettore da una variabile è la parte di inserimento dei dati, quindi tutta la parte di inizializzazione e di modifica dei valori in caso di bisogno,
Come dicevo anche prima, i vettori si organizzano in celle. Ogni cella contiene l’identificazione della stessa, e poi il valore contenuto dalla cella. L’identificazione serve per poter richiamare un determinato valore nel corso dell’esecuzione del programma. Se l’identificazione delle celle non viene specificata, il php engine, per distinguerle, utilizzerà un valore numerico. Partendo dal valore 0, per ogni cella che viene aggiunta incrementa di uno il valore di identificazione. Cosa molto comoda, nel caso si decide di gestire un vettore tramite la forma iterativa, quindi in modo totalmente, o quasi, automatico.
Vediamo un esempio pratico di un vettore, spiegando poi la sintassi che si è usato.
Innanzi tutto voglio partire dicendo che un vettore non è altro che un array più semplificato. Infatti un vettore contiene una sola riga, invece gli array possono contenere infinite righe.
Ora mi spiego meglio.
In questo codice noi abbiamo realizzato un array a tutti gli effetti. Questo array è di tipo associativo, in quanto associamo ad ogni cella o ad ogni riga un determinato nome per identificare ogni elemento.
Dopo aver dichiarato il vettore, lo inizializziamo grazie alla funzione Array, che permette di far capire al php engine che si sta trattando di un array. La funzione Array si usa sia nel caso si sta per realizzare un vettore, che per realizzare un array vero e proprio. Tanto come ho appena accennato, sono la stessa cosa. Cambia solo che un array ha più righe e invece un vettore una sola.
Per chi non lo avesse ancora capito, un vettore è una riga. Quindi dire che un array è un insieme di righe è come dire che un array è un insieme di vettori.
Infatti se un array ha la sintassi che abbiamo appena visto, un vettore ha le seguenti caratteristiche:
Ritorniamo alla sintassi degli array.
Un array si apre con la funzione Array. Al suo interno si aprono dei vettori. Dato che un vettore non è altro che un tipo di variabile in grado di memorizzare più valori, si deve dichiarare. Per farlo non è possibile usare il simbolo del dollaro, in quanto non è possibile dichiarare una variabile all’interno di una variabile. Quindi si trasforma il vettore in un oggetto. Un oggetto che ha identificazione, per poterlo riconoscere e poi un valore. Dato che un vettore deve contenere una serie di valori, si usa la funzione Array. Per questo motivo all’interno del codice si aprono tanti oggetti inizializzandoli con la funzione array. Quindi non è altro che un “contenitore” dentro un altro contenitore. Lo so è complesso da comprendere. Ma la logica è tutta qui.
L’operatore => si usa per assegnare un valore ad un’oggetto. È come l’operatore = per le variabili. Ha lo stesso significato. La sintassi quindi è questa:
‘identificazione’ => ‘valore’
E se ci pensate bene ricorda molto questa sintassi
$variabile = ‘valore’;
Al fine di ogni valore inserito nel vettore, si usa la (,) virgola, per far si che si separi una cella del vettore da un’altra. Nell’ultimo valore del vettore non si inserisce la virgola finale, in quanto non bisogna separarlo da altri valori, dato che è l’ultimo oggetto del vettore in questione.
Se per il momento è poco chiaro tutto questo, non vi preoccupate. Più avanti nel corso avremo modo di approfondire questi concetti.
Per richiamare un valore di un array, bisogna inserire il nome dell’array, preceduto ovviamente dal simbolo $ come qualsiasi variabile. Questo è seguito da una prima parentesi quadra [] che contiene il nome del vettore che contiene il dato desiderato. Questa prima parentesi quadra è seguita da un’altra [] che contiene il nome (sarebbe l’identificatore) della cella del vettore che contiene il valore che a noi serve.
Nel codice che abbiamo scritto, questo è l’esempio pratico
echo $array[‘progetto’][‘url’];
Nel caso avessimo a che fare con un semplice vettore, al suo interno dobbiamo inserire solo l’identificazione delle celle che lo compongono, seguito dal relativo valore, usando l’operatore di assegnamento => Ogni valore deve essere seguito dal simbolo (,) tranne l’ultimo, che non è necessario, per i motivi che abbiamo visto prima.
Infine per richiamare un vettore è necessario scrivere il nome del vettore, preceduto dal simbolo $ e seguito da una parentesi quadra [] con il nome della cella che contiene il valore desiderato. Un esempio pratico di tutto questo è:
echo $vettore[‘url’];
Controllo stringhe
Come ultimo argomento di oggi vorrei affrontare il controllo delle stringhe di testo. Questo genere di argomento, molto facile, può tornare davvero utile nella gestione dei form.
Nella lezione precedente, abbiamo introdotto l’uso della funzione strip_tags, funzione in grado di verificare in automatico se sono presenti tag html e di conseguenza rimuoverli.
Ma come fare ad esempio, a rimuovere tutta una serie di caratteri che possono essere molto pericolosi, come la virgola, il punto, l’asterisco, il cancelletto ecc…
Beh esiste una funzione che ci permetterà di fare tutto questo. Questa funzione si chiama str_replace.
La sintassi della funzione è la seguente:
str_replace(‘elemento_da_cercare’ , ‘elemento_sostitutivo’ , ‘stringa_in_cui_cercare’);
Come avrete potuto ben notare, questa funzione richiede 3 parametri. Il primo serve per cercare un determinato elemento, che può essere una frase, una lettera, una parola o un determinato carattere. Il secondo parametro serve per andare a sostituire l’eventuale o gli eventuali elementi trovati che corrispondono alla ricerca, con un valore che decidiamo noi. Se usiamo il simbolo della stringa vuota “”, ovvero i due apici senza nulla dentro, l’elemento cercato verrà semplicemente rimosso, in quanto viene sostituito con il nulla. Il terzo parametro è la stringa in cui effettuare la ricerca. Possiamo fornire anche una variabile volendo. In tutti e tre i parametri possiamo fornire una variabile.
Facciamo un esempio
In questo caso abbiamo inserito una stringa all’interno della variabile $stringa
Poi abbiamo assegnato alla variabile $stringa, la nuova stringa di testo, risultato dell’azione della funzione str_replace
Alla funzione gli abbiamo chiesto di cercare il carattere # e una volta trovato di cancellarlo. Infine abbiamo stampato, con echo, il risultato di questa operazione.
Conclusioni
Oggi in questa lezione abbiamo visto davvero tantissimi aspetti nuovi riguardanti la programmazione in php. Spero ti siano stati chiari. Se così non fosse, ti invito a lasciare un commento, in modo tale da permettermi di aiutarti senza problemi.
Quindi anche questa lezione si conclude qui. Ti aspetto al mio prossimo articolo!