Variabili e gestione del tempo con PHP
In questo articolo daremo uno sguardo alle variabili e alla gestione del tempo in PHP.
Prima però voglio consigliarvi di scaricare il manuale di PHP in formato .chm. Certo, su internet è sempre disponibile il manuale costantemente aggiornato, ma vi assicuro che la comodità della versione .chm non è stata ancora eguagliata.
Creiamo un file di testo con il nostro editor preferito e salviamolo nella cartella iwd (che avevamo creato in seguito a questo articolo) col nome di stringa.php
Iniziamo a modificarlo, scrivendo:
<?php
$mionome = 'Dario';
?>
Così facendo avremo appena creato una variabile. Come noterete il primo carattere è il simbolo del dollaro $. Questo simbolo fa capire a PHP che stiamo gestendo una variabile. Il secondo carattere deve essere una lettera o l’underscore _; dal terzo carattere in poi possiamo inserire qualsiasi combinazione alfanumerica, numeri compresi (in questo caso ho scelto mionome).
Il simbolo = è il carattere di assegnazione. Gli apici servono a far capire a php che stiamo scrivendo del testo.
Dunque ciò che abbiamo appena scritto potrebbe essere letto: assegna la stringa ‘Dario’ alla variabile $mionome
Ricordate che php fa distinzione tra maiuscole e minuscole, dunque se creassi due variabili:
$miopadre = 'Pino';
$Miopadre = 'Franco';
Queste sarebbero considerate come due variabili diverse da php. State attenti.
Le variabili possono contenere principalmente diversi tipi di informazioni:
- Booleane: ovvero TRUE e FALSE (vero e falso). E’ utile salvare queste informazioni per sapere se una data funzione ha avuto successo (più avanti avrete degli esempi).
- Stringhe: cioè interi testi, che poi possono essere salvati in un database, inviati all’utente, modificati, ecc. a seconda delle esigenze.
- Numeri
Ma come faccio a visualizzare il contenuto di una variabile quando eseguo uno script? Ecco un esempio, riprendiamo il file stringa.php, e scriviamo:
echo 'Il mio nome è: '.$mionome.'!';
sempre all’interno dei due delimitatori di codice php <?php e ?>.
A questo punto eseguiamo lo script e visualizzeremo questo testo:
Il mio nome è: Dario!
Cosa è successo?
Con l’istruzione echo possiamo dire a php di inviare al browser del testo, ed anche il contenuto delle variabili (o il risultato di una funzione come vedremo in seguito).
In questo caso abbiamo inserito un testo tra gli apici ‘Il mio nome è: ‘, e lo abbiamo fatto seguire dal carattere punto(.).
Il punto fuori dagli apici serve a dire ad echo che ora vogliamo visualizzare il contenuto di una variabile (o il risultato di una funzione). Poi con un altro punto diciamo ad echo che vogliamo visualizzare altro, in questo caso un’altra stringa di testo, dunque mettiamo l’apice e scriviamo il punto esclamativo, quindi chiudiamo nuovamente l’apice.
Se fino a questo punto i concetti sono chiari, mettiamoci pure a fare un po’ di calcoli. Come precedentemente detto le variabili possono contenere dei numeri, e PHP può eseguire per noi dei calcoli.
Creiamo un nuovo file, chiamiamolo matematica.php e, tra i tag di apertura e chiusura del codice php (<?php e ?>), scriviamo:
$x = 5;
$y = 3;
$z = $x+$y;
echo $z;
Se ora raggiungiamo lo script con il nostro browser visualizzeremo:
8
Potrebbe sembrare un tantino inutile, ma mettiamo caso di voler calcolare quanti secondi sono passati dall’inizio dell’anno in corso. Creiamo un nuovo file, chiamiamolo secondi.php, apriamo e chiudiamo i tag per php, e scriviamo in essi:
$oggi = time();
$inizio_anno = mktime(0, 0, 0, 1, 1, date('Y'));
$secondi_passati = $oggi – $inizio_anno;
echo $secondi_passati;
Ed eseguiamo lo script. Il risultato sarà il numero di secondi passati dall’inizio dell’anno.
Ma come funziona questo script? Bene, dovete sapere che PHP calcola il tempo basandosi sulla UNIX Timestamp, ovvero il numero di secondi dalla Unix Epoch (January 1 1970 00:00:00 GMT). Per avere l’UNIX timestamp attuale bisogna eseguire la funzione time();
Quando noi scriviamo:
$oggi = time();
diciamo a PHP di salvare il risultato della funzione time(); nella variabile $oggi. In questo modo avremo memorizzato il numero di secondi passati fino ad oggi.
Poi dobbiamo sapere il numero di secondi che erano passati dall’UNIX time all’inizio del 1 Gennaio di quest’anno, dunque per farlo esiste una funzione chiamata mktime(); la quale restituisce la UNIX Timestamp per una data assegnata da noi. La data va inserita tra le parentesi di mktime(), e rispettando un preciso ordine, ovvero:
mktime(ore, minuti, secondi, mese, giorno, anno);
ogni paramentro deve essere separato da una virgola.
Dovendo noi iniziare dalle 00:00 e 0 secondi del 01/01 dell’attuale anno, abbiamo inserito questi parametri nella variabile $inizio_anno.
Avrete però notato che lì dove avrei dovuto scrivere l’anno vi è una funzione, ovvero la funzione date();
Questa funzione formatta una data o orario locale. Serve principalmente per convertire la UNIX Timestamp in una data facilmente leggibile da un umano. Se però non passiamo alla funzione una UNIX Timestamp, avremo come risultato un parametro della data attuale.
Ad esempio se volessi sapere in che mese siamo scriverei:
echo date('F');
ed avrei come risultato il mese attuale.
Se volessi sapere la data di oggi, nel formato giorno-mese-anno, scriverei:
echo date('j-m-Y');
date(); ha molti parametri, pertanto vi consiglio di tenere sempre a portata di mano il manuale di PHP per una veloce consultazione.
Nel caso di mktime(); avrete ormai capito che ho usato date(‘Y’) lì dove dovevo inserire l’anno in modo da avere sempre l’anno corrente (la Y, rigorosamente maiuscola, serve infatti a farsi restituire l’anno in corso).
Nella variabile $secondi_passati, ho fatto una sottrazione tra l’UNIX Timestamp attuale e quello del 01 Gennaio, in modo da ottenere il numero di secondi passati dall’inizio dell’anno.
Infine ho inviato il risultato al browser usando echo.
A questo punto finiamo con un esempio molto pratico. Nel footer di un sito si è soliti inserire l’anno corrente per evidenziare il copyright.
Ad esempio 2007-2009, tutti i diritti riservati.
Con PHP non dovremo più aggiornare il footer ogni anno, basterà scrivere:
$footer = '2007-'.date('Y).', tutti i diritti riservati';
e inviare l’informazione contenuta nella variabile $footer, usando echo, dove preferiamo nell’html del documento.
Anche per questo articolo è tutto. Nel prossimo creeremo la nostra prima funzione personalizzata, che ci servirà a risparmiare tempo quando dobbiamo generare gallerie di immagini.
Se avete dubbi, richieste o critiche i commenti sono qui sotto.


















Add to Google

2 Commenti
grande dario.
una lezione basilare di php molto chiara ed esaustiva
Buongiorno a tutti,
se posso permettermi una precisazione tecnica direi che il punto in php serve per ‘concatenare stringhe’, quindi visto che in php non c’è una tipizzazione vera e propria quando si concatena ad una stringa tra appici una variabile o una funzione, (che ovviamente restituisce qualcosa) php esegue una sorta di casting automatico dal tipo X a stringa.