PHP
Da Wikiversità, l'università aperta.
Questa lezione è incompleta
Tutti i contributi sono ben accetti perché sono state scritti pochi (o nessun) argomenti di questa lezione.
![]() PHP |
|
|---|---|
| Tipo di linguaggio | Scripting lato server |
| Ultima versione | 5.2.4 / 30/09/07 |
| Sviluppatore | PHP Group |
| Specifiche/Sito Web | http://www.php.net/ |
Indice |
[modifica] Introduzione
[modifica] Cos'è PHP
PHP, PHP Hypertext Processor (nella versione 1 Personal Home Page) è un linguaggio di scripting lato server. Il suo nome è un acronimo ricorsivo che sta per PHP: Hypertext Preprocessor (PHP: preprocessore di ipertesti). Il software MediaWiki, che gestisce i siti del progetto Wikipedia, è scritto in PHP. Il PHP è simile come sintassi al C e al Perl.
[modifica] Vantaggi e Svantaggi
[modifica] Concetti di base
[modifica] Integrare php nelle pagine
Una pagina php di solito ha l'estensione .php o .phtml e per eseguire uno script si deve scrivere:
<?php ... mio script ?>
<? ... mio script ?>
<script type="php"> ... mio script </script>
Gli ultimi due metodi sono però sconsigliati: il metodo di utilizzare i tag html non è riconosciuto da tutti i webserver e quindi si potrebbero incontrare molti problemi di incompatibilità; il metodo dei tag brevi (<? ?>), si sta piano piano abbandonando, a causa dell'introduzione dell'XHTML che comporta l'intestazione con <?xml ... ?> e se un server HTTP interpreta <? come php genererà un errore.
[modifica] Commenti
Per rendere più leggibile il codice si usano i commenti. I commenti non vengono letti dall'interprete quindi non influiscono molto sulla velocità di esecuzione. Ecco un esempio pratico di commenti:
<?php // Questo è un commento tipo C. Tutto quello che segue // sulla stessa riga viene ignorato. /* Commento in stile c++: Tutto quello compreso tra quei due tag viene ignorato anche se su più righe */ # Commento in stile perl: commento a riga singola. ?>
Ricorda: Non è possibile annidiare i commenti, una sintassi come
<?php // QUESTO CAUSA UN ERRORE // ora inizia il commento /* multi commento? no! perché non riconosce /*!!! */ ?>
è errata!
[modifica] Variabili
Una variabile può essere considerato come un contenitore di dati, il cui contenuto può cambiare nel corso dello script. A differenza di molti altri linguaggi il php non pretende la dichiarazione del tipo nel momento della inizializzazione della variabile. In php, a differenza del C, l'inizializzazione e la dichiarazione avvengono nello stesso momento. Per crea una variabile è sufficiente assegnargli un valore. Le variabili sono SEMPRE precedute dal simbolo del dollaro ($). Vediamo alcuni esempi:
<?php //Inizializzo una variabile intera $a = 20; //Inizializzo una stringa $b = "W Wikiversità!"; //Inizializzo un float/double $c = 2.3; ?>
Ricorda: PHP è un linguaggio Case Sensitive! Ciò significa che c'è differenza tra $wiki e $WIKI.
Una variabile che si crea si può anche distruggere. Questa azione normalmente non è necessaria, perché terminato lo script il PHP si occupa da solo di eliminarla. Può però tornare utile in alcune occasioni, quindi ecco la funzione:
//Inizializzo la variabile $a = 134; unset($a); //Elimino la variabile e dealloco la memoria utilizzata da essa //Qui la variabile non esiste più!
[modifica] Costanti
Una costante è un contenitore (come le variabili) che non può cambiare il suo contenuto nell'esecuzione dello script; questo comporta un minor utilizzo di memoria. In PHP è possibile dichiarare in due modi le constanti. Il modo più diffuso è quello di utilizzare la direttiva define:
<?php define("nome_costante","valore"); ?>
Un'altra sintassi possibile è quella di utilizzare la parola chiave const:
<?php class miaClasse { const COSTANTE = valore; public function miaFunzione() { // per utilizzare la costante bisogna utilizzare il costrutto self $variabile = self::COSTANTE * 5; } } ?>
La principale differenza tra l'uso del costrutto define e la const è che la prima dichiara una costante globale che si può utilizzare in tutte le parti di un progetto, mentre la visibilità di una costante dichiarata con la const è limitata unicamente alla classe all'interno della quale è dichiarata.
Vediamo ora un codice più complesso che implementa costanti e variabili:
<?php define("a",17); define("b",16); define("c",127); define("d",1); define("STRINGA","Il prodotto è: "); $prodotto=a*b; echo STRINGA.$prodotto; $prodotto=c*d; echo STRINGA.$prodotto; ?>
In php esistono costanti predefinite e riservate. Non è possibile dichiarare costanti con lo stesso nome (stessa cosa con le funzioni):
- __FILE__
- __LINE__
- PHP_VERSION
- PHP_OS
- TRUE
- FALSE
[modifica] Array
Questo argomento tratta variabili multidimensione. Se non hai esperienza con altri linguaggi di programmazione ti consigliamo di leggere prima gli operatori e le strutture di controllo
Un array è una variabile che possiede più dimensioni. Può essere considerato come un libro e ogni pagina corrisponde a una variabile. Il numero di variabili che un array può contenere è illimitato (sempre relativamente alla memoria disponibile al PHP). A differenza di un libro in cui le pagine vengono chiamate con dei numeri, il php ci permette di utilizzare anche stringhe per identificare le variabili. Il vantaggio degli array è che riduce la dimensione occupata dalle variabili stesso e mantiene il codice più ordinato evitando lo Spaghetti code.
Per capire a cosa servono gli array e come si utilizzano in PHP leggi la sezione dedicata
[modifica] Operatori
[modifica] Operatori matematici
Gli operatori matematici utilizzabili sono:
$a + $b Addizione
$a - $b Sottrazione
$a * $b Moltiplicazione
$a / $b Divisione
$a % $b Modulo (resto)
alcuni esempi sono
<?php $a = 5; $b = 3; $risultato = $a % $b; echo $risultato; ?> Risulterà 2
[modifica] Operatori di confronto
Gli operatori di confronto tra stringhe sono:
$a == $b Se contengono gli stessi dati
$a === $b Identici: se contengono gli stessi dati e sono dello stesso tipo (es. se sono numeri o valori letterali)
$a != $b Se $a è diverso da $b.
$a <> $b Se $a è diverso da $b.
$a !== $b Non identici: se $a è diverso da $b o se essi non sono dello stesso tipo.
$a < $b Se $a è minore di $b.
$a > $b Se $a è maggiore di $b.
$a <= $b Se $a è minore o uguale di $b.
$a >= $b Se $a è maggiore o uguale di $b.
[modifica] Strutture di controllo
[modifica] If
<?php $a = 1; if($a % 2 == 0) { echo $a.' è pari'; } else { echo $a.' è dispari'; } ?> Risulterà dispari.
[modifica] Switch
<?php $a = 'uno'; switch($a){ // Se $a è vuota default: echo 'Nessun numero!'; break; case 'uno': echo 'Sono il numero uno'; break; case 'due': echo 'Sono il numero due'; break; } ?> Risulterà "Sono il numero uno"
[modifica] Operatore Ternario
Sintassi
<?php /* se la condizione è vera restituisce il valore1 altrimenti restituisce il valore2 */ $variabile = condizione ? valore1 : valore2; ?>
Esempio
<?php $a = 1; $b = $a==1 ? "La variabile a vale uno" : "La variabile a è diversa da uno"; echo $b; ?> Risulterà "La variabile a vale uno"
[modifica] Cicli
[modifica] For
Sintassi
<?php for (assegnamenti_iniziali; condizioni_entrata_ciclo; istruzioni_uscita_di_ogni_ciclo) { istruzioni_ciclo; } ?>
Il ciclo for inizialmente applica gli assegnamenti indicati come assegnamenti_iniziali (che eventualmente possono essere omessi), poi verifica le condizioni_entrata_ciclo: se risultano vere si entra nel ciclo. All'uscita del ciclo vengono effettuate le istruzioni_uscita_ogni_ciclo e poi si verificano nuovamente le condizioni per stabilire se si deve ciclare un'altra volta oppure se si può uscire dal ciclo. Ovviamente si continua a ciclare fino a che le condizioni_entrata_ciclo non siano complaessivamente false. Per sua natura il ciclo for è usato principalmente per ciclare i valori di un vettore, per il resto il funzionamento è identico ad un ciclo while, tanto che i due costrutti possono essere interscambiabili.
Esempio
<?php $array = array("uno", "due", "tre", "quattro"); // dichiaro un array di quattro elementi // parti con l'indice uguale a 0 (in quanto gli array cominciano da 0 in php) // entra nel ciclo fino a quando l'indice $i è minore del numero di elementi dell'array (count($array)) // ad ogni ciclo incrementa l'indice di uno ($i++) for ($i=0; $i<count($array); $i++) { echo "Elemento $i: " . $array[$i] . "<br />"; } ?>
L'esempio stamperà:
Elemento 0: uno Elemento 1: due Elemento 2: tre Elemento 3: quattro
[modifica] Foreach
Sintassi
<?php foreach ($array as $array_element) { istruzioni_ciclo; } ?>
Il ciclo foreach è simile al ciclo for, solo che non necessita di indici o condizioni perché cicla direttamente dall'inizio alla fine di un insieme di valori, tipicamente un array. La variabile $array contiene l'insieme di valori, il ciclo scorrerà tutto l'array inserendo nella variabile $array_element il valore dell'elemento corrente dell'array. Il ciclo termina quando si giunge alla fine dell'array.
Esempio
<?php $array = array("uno", "due", "tre", "quattro"); // dichiaro un array di quattro elementi // per ogni elemento dell'array entra nel ciclo foreach ($array as $array_element) { echo $array_element . "<br />"; } ?>
L'esempio stamperà:
uno due tre quattro


