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.

Immagine:logo-php.gif
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

[modifica] While

[modifica] Do While

[modifica] Variabili globali

[modifica] GET

[modifica] POST

[modifica] Cookie

[modifica] Sessioni

[modifica] Database

[modifica] MySQL

[modifica] MySQLi

[modifica] Glossario

[modifica] Funzioni sulle variabili

[modifica] Funzioni sulle stringhe

[modifica] Funzioni sugli array

Strumenti personali
Altre lingue