Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con...

17
Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp contiene al suo interno, oltre all'interprete Php, anche un interprete Perl (chiamato MiniPerl). I file scritti in Php (estensione .php) devono risiedere nella cartella htdocs di Xampp meglio se organizzati in cartelle (in Linux si può configurare Xampp per fare in modo che la cartella dell'utente coincida con la cartella dei progetti web: leggete il mio articolo dal titolo “Programmare in Php con Xampp e NetBeans IDE”, alla url http://www.mauriziocozzetto.net/pdf/netbeans_php.pdf ). I file scritti in Perl (estensione .cgi o .pl) invece dovranno risiedere nella cartella cgi-bin, anch'essi organizzati in opportune cartelle. A questo punto, scriviamo due file di prova per verificare se tutto funziona come previsto, uno in Php e l'altro in Perl. Evitiamo di creare cartelle perchè abbiamo solo due file ma teniamo ben presente che nei progetti reali, raccogliere i vari file in opportune cartelle (ad esempio una per le immagini, un'altra per i file css ecc) è ormai prassi comune perchè aiuta a tenere ordinate le risorse e il codice. Fig. 1 – Sorgente di Hello world in php Fig. 2 – Sorgente di Hello world in Perl (i messaggi prodotti sono dovuti alle regole poste dall'interfaccia CGI e dal protocollo HTTP, ne parleremo più avanti) oop_php5_perl.pdf Pag. 1/17 Cozzetto ©

Transcript of Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con...

Page 1: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Programmare in Php e Perl con Xampp e Blocco Note (Windows)Xampp contiene al suo interno, oltre all'interprete Php, anche un interprete Perl (chiamato MiniPerl).

I file scritti in Php (estensione .php) devono risiedere nella cartella htdocs di Xampp meglio se organizzati in cartelle (in Linux si può configurare Xampp per fare in modo che la cartella dell'utente coincida con la cartella dei progetti web: leggete il mio articolo dal titolo “Programmare in Php con Xampp e NetBeans IDE”, alla url http://www.mauriziocozzetto.net/pdf/netbeans_php.pdf). I file scritti in Perl (estensione .cgi o .pl) invece dovranno risiedere nella cartella cgi-bin, anch'essi organizzati in opportune cartelle.

A questo punto, scriviamo due file di prova per verificare se tutto funziona come previsto, uno in Php e l'altro in Perl. Evitiamo di creare cartelle perchè abbiamo solo due file ma teniamo ben presente che nei progetti reali, raccogliere i vari file in opportune cartelle (ad esempio una per le immagini, un'altra per i file css ecc) è ormai prassi comune perchè aiuta a tenere ordinate le risorse e il codice.

Fig. 1 – Sorgente di Hello world in php

Fig. 2 – Sorgente di Hello world in Perl (i messaggi prodotti sono dovuti alle regole poste dall'interfaccia CGI e dal protocollo HTTP, ne parleremo più avanti)

oop_php5_perl.pdf Pag. 1/17 Cozzetto ©

Page 2: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Osserviamo gli output.

Fig. 3 – Hello world in Php (la url non visibile è http://localhost/test_php.php)

Fig. 4 – Hello world in Perl (la url non visibile èhttp://localhost/cgi-bin/test_perl.pl)

Programmare in Php e Perl con Xampp e DreamweaverDreamweaver, oltre che essere un ottimo strumento per grafici e designer, è anche un utile strumento per lo sviluppo di codice, in particolare di codice Php. Vediamo i passi necessari per configurare correttamente un sito (dinamico) in Dreamweaver.

Innanzitutto, attiviamo Xampp (oppure solo il web server Apache) mediante l'apposita icona o file batch che sia.

Apriamo Dreamweaver e dalla barra principale dei menu, scegliamo (per la versione in inglese) Site > New Site... e seguiamo i passi di seguito riportati:

oop_php5_perl.pdf Pag. 2/17 Cozzetto ©

Page 3: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 5 – Passo 1: diamo un nome al sito e scegliemo la url del sito

oop_php5_perl.pdf Pag. 3/17 Cozzetto ©

Page 4: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 6 – Passo 2: scegliamo una tecnologia lato-server tra quelle supportate

oop_php5_perl.pdf Pag. 4/17 Cozzetto ©

Page 5: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 7 – Passo 3: scegliamo come lavorare con i file e dove memorizzarli(per noi in locale)

oop_php5_perl.pdf Pag. 5/17 Cozzetto ©

Page 6: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 8 – Passo 4: definiamo la url della root del sito e facciamo il test della stessa

oop_php5_perl.pdf Pag. 6/17 Cozzetto ©

Page 7: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 9 – Passo 5: rispondiamo no a questa domanda

oop_php5_perl.pdf Pag. 7/17 Cozzetto ©

Page 8: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 10 – Passo 6: leggiamo le informazioni di riepilogo. Clicchiamo infine su Done

Dreamweaver creerà per noi anche la cartella ProvaPhp, che rappresenta la cartella principale del sito e nella quale raccoglieremo tutti i materiali necessari al progetto.

Procediamo in maniera analoga, se vogliamo sviluppare in Perl: basterà ricordarsi di salvare i file nella cartella cgi-bin, gestire correttamente le url e scrivere le estensioni corrette dei file (.pl o .cgi). I file .cgi sono scritti di solito nel linguaggio della shell di Linux o anche in C (o con altri linguaggi oltre che il Perl)

Programmare in Php e Perl con Xampp e Netbeans 6.5Netbeans (però a partire dalla versione 6.1 in avanti) fornisce un buon supporto al Php, in particolare al Php5 che è a oggetti. Vediamo i passi necessari per configurare correttamente l'ambiente di lavoro.

Innanzitutto, apriamo NetBeans e dal menu File, scegliamo New Project...

oop_php5_perl.pdf Pag. 8/17 Cozzetto ©

Page 9: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 11 – Passo 1: (Categories) PHP > (Projects) PHP Application

Fig. 12 – Passo 2: diamo un nome al progetto e scegliamo la cartella dei file sorgente

oop_php5_perl.pdf Pag. 9/17 Cozzetto ©

Page 10: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Fig. 13 – Passo 3: scelta del server (locale) e della url del sito.Terminiamo la procedura cliccando su Finish

NetBeans, come Dreamweaver, creerà per noi la cartella del progetto, ProvaPhpApp (oltre a una cartella riservata chiamata nbprojects) e una home page chiamata index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <?php // put your code here ?> </body></html>

Fig. 14 – Il codice prodotto da NetBeans (index.php)

Il codice andrà collocato ovviamente tra i tag <?php e ?> come indicato anche dal commento.

Facendo qualche prova, riusciremo facilmente a configurare NetBeans 6.5 perché lavori anche con il Perl.

Nozioni di base Php/PerlLinguaggi debolmente tipizzati e variabili elementari

Il Php, come il Perl, è un linguaggio non tipizzato (o debolmente tipizzato), come quasi tutti i linguaggi interpretati o i linguaggi di scripting. Le variabili in Perl e Php hanno il segno $ davanti. Una variabile elementare locale a un certo contesto si può dichiarare e inizializzare come qui di seguito (ma si può anche evitare di scrivere la parola riservata var):

oop_php5_perl.pdf Pag. 10/17 Cozzetto ©

Page 11: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

<?php var $a = “ciao bionda”; ?>

Se per qualsiasi motivo, decidiamo di assegnare ad essa un valore di diverso tipo, lo possiamo fare, ma perderemo il valore memorizzato precedentemente:

<?php $a = 30; ?>

mentre se vogliamo che sia globale dobbiamo usare il modificatore di visibilità global.

Array (Php)

Un array in Php è una collezione di coppie chiave/valore. Gli indici di un array possono essere numeri interi o stringhe. Gli array si possono dichiarare usando il costrutto array che in genere ha la seguente forma:

array([key =>]value,[key =>]value, [key =>]value, ...)

Gli elementi posti nelle parentesi quadre sono facoltativi.

Esempi:

<?php $a=array(1,2,3); ?>

equivale a

<?php $a=array(0=>1,1=>2,2=>3); ?>

I valori possono anche essere eterogenei (cioè non appartenenti allo stesso tipo di dato). In questo modo è possibile implementare le strutture:

<?php $a=array("Giovanni","Rossi","Via G. Verdi, 89","Brescia", 1200); ?>

In questo caso $a[0] indica "Giovanni", $a[1] indica "Rossi" ecc.

E' possibile perfezionare la definizione ricorrendo agli array associativi.

<?php $a=array("nome"=>"Giovanni","cognome"=>"Rossi","residenza"=>"Via G. Verdi, 89", "citta"=>"Brescia", "stipendio" => 1200 ); ?>

L'istruzione seguente:

<?php print $a["nome"]." ". $a["cognome"]."-".$a["residenza"]."-".$a["citta"]."-".$a["stipendio"]; ?>

visualizza nel browser i dati relativi alla residenza di Giovanni Rossi. il simbolo . è l'operatore di concatenamento di stringhe.

Giovanni Rossi-Via G. Verdi, 89-Brescia-1200

Se si vuole effettuare il debug del proprio applicativo, una funzione utile è print_r($array), il cui output è il seguente (nel caso dell'array $a definito in precedenza):

Array ( [nome] => Giovanni [cognome] => Rossi [residenza] => Via G. Verdi, 89 [citta] => Brescia [stipendio] => 1200)

Possiamo aggiungere elementi ad un array in diversi modi; ad esempio se:

<?php $a=array(5,6,7); ?>

le istruzioni $a[]=8; $a[]=9; $a[10]=-3; aggiungono 3 nuovi elementi all'array nelle posizioni 3,4, 10.

Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [10] => -3 )

Gli elementi non vengono riordinati se per caso aggiungo un nuovo elemento in una posizione

oop_php5_perl.pdf Pag. 11/17 Cozzetto ©

Page 12: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

"intermedia" ma si tiene conto dell'ordine di inserimento. Quindi se $a[6]=-21, si ottiene:

Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [10] => -3 [6] => -21 )

Per modificare un elemento di cui è nota la posizione (l'elemento deve esistere altrimenti si ottiene un messaggio di errore), è sufficiente riassegnargli un nuovo valore; ad esempio, se $a[3]=32:

Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 32 [4] => 9 [10] => -3 [6] => -21 )

Per cancellare un elemento dell'array di cui conosco la posizione, uso il costrutto unset($variabile):

unset($[2]) produce in output:

Array ( [0] => 5 [1] => 6 [3] => 32 [4] => 9 [10] => -3 [6] => -21 )

unset($a) provvede a cancellare l'intero vettore.

Per visualizzare gli elementi di un array (non associativo), usiamo la funzione count($array) che conta il numero di elementi presenti nell'array. Se $a=array(1,2,3,4,5);

<?php for ($j=0; $j<count($a); $j++) print "elemento di posto $j=".$a[$j]; ?>

produce in output:

elemento di posto 0=1elemento di posto 1=2elemento di posto 2=3elemento di posto 3=4elemento di posto 4=5

Se l'array è associativo come in questo caso

<?php $a=array("cognome"=>"Rossi","nome"=>"Giulio","residenza"=>"Via De Martinis, 9","citta"=>"Torino","stipendio"=>1400); ?>

il seguente ciclo

<?php foreach($a as $key=>$value) print "$key=$value<br/>"; ?>

genera l'output:

cognome=Rossinome=Giulioresidenza=Via De Martinis, 9citta=Torinostipendio=1400

Gli elementi di un array possono a loro volta essere degli array. In tal modo possiamo definire tabelle e matrici:

<?php $a=array( array("cognome"=>"Rossi","nome"=>"Valentino"), array("cognome"=>"Rossi","nome"=>"Vasco"), array("cognome"=>"Verdi","nome"=>"Maurizio"), array("cognome"=>"Gialli","nome"=>"Valerio")); ?>

definisce una tabella di 4 righe e 2 colonne. Per visualizzarne il contenuto per righe e per colonne, utilizziamo il seguente codice (che è abbastanza intuitivo da non richiedere ulteriori spiegazioni):

oop_php5_perl.pdf Pag. 12/17 Cozzetto ©

Page 13: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

<?php for ($j=0; $j<count($a); $j++) //ciclo sulle righe print $a[$j]["cognome"]." ".$a[$j]["nome"]."<br/>"; ?>

Rossi ValentinoRossi VascoVerdi MaurizioGialli Valerio

Un ciclo alternativo è il seguente:

<?php foreach($a as $persona) print $persona["cognome"]." ".$persona["nome"]."<br/>"; ?>

Rossi ValentinoRossi VascoVerdi MaurizioGialli Valerio

Array (Perl)In Perl, il nome della variabile usata per l'array può essere preceduta da @ per fare riferimento all'intero array o dal simbolo $ per fare riferimento alle singole componenti (non è necessario usare la parola riservata array).Esempi:

#!"C:\xampp\perl\bin\perl.exe"

@a=(13,45,65,23);

print "Content-type: text/html\n\n";print "<html>";print "<head>";print "<title>Array in Perl</title>";print "</head>";print "<body><h3>Array in Perl</h3>";

$i=0;# primo modofor(0..scalar(@a)){ print $a[$i]."<br/>"; $i++; }

# secondo modoforeach $e (@a){ print $e."<br/>"; }

# terzo modo (using special perl var)foreach (@a){ print $_."<br/>"; }

print "</body></html>";

Fig. 15 – Codice di gestione di un array in Perl

La funzione scalar restituisce il numero di elementi dell'array e ogni ciclo visualizza tutti gli elementi dell'array ognuno su una singola riga.

oop_php5_perl.pdf Pag. 13/17 Cozzetto ©

Page 14: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

Array associativi (Perl)

#!"C:\xampp\perl\bin\perl.exe"

%a = ("cognome" => "Ciccio", "nome" => "Formaggio", "residenza" => "Via Milano, 4", "citta" => "Roma", "stipendio" => 1400);

print "Content-type: text/html\n\n";print "<html>";print "<head>";print "<title>Array in Perl</title>";print "</head>";print "<body><h3>Array in Perl</h3>";

# primo modoforeach $key (keys(%a)) { $value = $fields{$key}; print ($key. "=".$value."<br/>");}

# secondo modoforeach (keys(%a)) { print "$_=$fields{$_}<br/>\n"; }

print "</body></html>";

Fig. 16 – Array associativo in Perl

Questa volta il simbolo da utilizzare nella dichiarazione e istanziazione dell'array associativo è % al posto della @. Se lanciamo inoltre il codice ci accorgeremo del fatto che gli elementi non vengono visualizzati nell'ordine della dichiarazione bensì seguono un “loro” ordinamento interno fissato dal Perl.

(Un particolare ringraziamento a Trimarchi per l'aiuto col Perl)

Osservazioni e note importanti per lo sviluppo a oggettiSe intendiamo lavorare a oggetti in Php5 usando con NetBeans 6.5 come IDE, il suggerimento è di comportarsi come se si lavorasse in Java in tutti i sensi. Intanto perchè i comandi di NetBeans per creare le classi in Php5 sono simili (se non gli stessi) a quelli che di solito si usano per creare classi in Java: infatti per creare una classe in Php5, dal menu principale di NetBeans, scegliamo File > New File... > (Categories) PHP > (File Types) Php Class, per cui le cose non cambiano di molto sotto il profilo operativo. Inoltre molti dei concetti tipici della programmazione Java (classe, interfaccia, metodi, costruttore ecc) sono stati “traslati” nel linguaggio Php5 per cui non si dovrebbe fare molta fatica ad adattarsi al nuovo linguaggio. Ovviamente è utile leggere un po' la documentazione.

Procediamo allora come se dovessimo scrivere un'applicazione Java, per cui se, ad esempio, dobbiamo progettare la classe Studente, il codice dovrebbe venire fuori in maniera naturale:

oop_php5_perl.pdf Pag. 14/17 Cozzetto ©

Page 15: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

<?php/** * Description of Prova * * @author maurizio */

class Studente { private $cognome; private $nome;

// costruttore con 2 argomenti function Studente($cognome, $nome) { $this->cognome=$cognome; $this->nome=$nome; }

// metodo che restituisce l'anagrafica di uno studente function anagrafica() { return $this->nome . " " . $this->cognome; }

// seguono getter e setter function getNome() { return $this->nome; }

function getCognome() { return $this->cognome; }

function setCognome($cognome) { $this->cognome = $cognome; }

function setNome($nome) { $this->nome = $nome; }

} // fine classe Studente?>

Fig. 15 – Codice della classe Studente (file Studente.php)

Un grave limite (superabile attualmente con dei “trucchi” ma non in maniera pulita) è che è impossibile effettuare l'overloading del costruttore. Speriamo che le prossime versioni del linguaggio provvedano a risolvere una così grave lacuna.

<?php include("Studente.php"); ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Index</title>

oop_php5_perl.pdf Pag. 15/17 Cozzetto ©

Page 16: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

</head> <body> <?php $studente5v = new Studente("Ciccio","Formaggio"); echo $studente5v->anagrafica(); ?> </body></html>

Fig. 16 – File index.php e istanza di un oggetto della classe Studente

Per istanziare correttamente gli oggetti, includiamo la classe nel nostro file come evidenziato nella figura precedente. L'output è prevedibile e lo omettiamo.

Modificatori di visibilità e fase di transizione Php4 Php5 →Consigliamo vivamente di usare nelle classi i modificatori di visibilità (sono gli stessi di Java, public, private e protected) soprattutto per gli attributi, mentre sconsigliamo invece di dichiarare le variabili attributo di una classe mediante la parola riservata var (sinonimo comunque di public) in quanto questa modalità di scrittura era consentita nella fase di transizione Php4 Php5. Anche i metodi, se non riportano nessun modificatore di visibilità,→ sono considerati public. La classe così scritta viene interpretata correttamente anche dalla versione 4 dell'interprete Php, tuttavia non ha molto senso usarla se si dispone della versione 5 del Php. Meglio produrre codice aggiornato.

<?php/** * Description of Test * * @author maurizio */ // classe compatibile con Php4class Test { var $appo; // variabile attributo

//put your code here}?>

Fig. 20 – Classe Test.php

“Metodi magici”Per quanto riguarda i Setter e i Getter, esiste in Php5 un meccanismo interessante che consente di velocizzare un po' la scrittura di tali metodi: si tratta dei cosiddetti “magic methods” __set() e __get().

Facciamo un esempio riscrivendo la classe Studente vista in precedenza. Questa volta per il costruttore abbiamo usato il metodo “magico” __construct() (file Studente2.php)

oop_php5_perl.pdf Pag. 16/17 Cozzetto ©

Page 17: Programmare in Php e Perl con Xampp e Blocco Note · PDF fileLaboratorio di sistemi Oop con Php5 e nozioni di Perl Php Programmare in Php e Perl con Xampp e Blocco Note (Windows) Xampp

Laboratorio di sistemi Oop con Php5 e nozioni di Perl Php

<?php/** * Description of Studente2 * @author maurizio */

class Studente2 { private $properties = array("cognome" => null, "nome" => null);

function __construct() { // costruttore nullo }

function __get($property){ return $this->properties[$property]; }

function __set($property, $value) { $this->properties[$property]=$value; }

function anagrafica() { // return $this->__get("nome")." ".$this->__get("cognome"); return $this->properties["nome"]." ".$this->properties["cognome"]; }

} // fine classe Studente2?>

Fig. 21 – Classe Studente2.php

Questa tecnica, che fa uso di un array associativo ($properties), consente di risparmiare davvero molte righe di codice se abbiamo molti attributi in una classe, tuttavia limita molto la leggibilità e la mantenibilità del codice nel tempo. Basta mettere a confronto le due classi Studente e Studente2. A voi comunque la scelta.

<?php $studente5v = new Studente2(); $studente5v->nome = "Maurizio"; $studente5v->cognome = "Cozzetto"; echo $studente5v->anagrafica();?>

Fig. 22 – Esempio di utilizzo della classe Studente2

oop_php5_perl.pdf Pag. 17/17 Cozzetto ©