Un'altra aggiunta interessante è che ora è possibile definire costanti di classe, accedendovi utilizzando l'operatore usato per le proprietà o i metodi statici:
<?php
class Prova
{
const MIA_COSTANTE = 'valore';
}
echo Prova::MIA_COSTANTE;
?>
Un'altra funzionalità molto interessante, che prima era utilizzabile solamente attraverso l'estensione overload ma ora è built-in, è la possibilità di definire dei metodi particolari per catturare tutte le richieste in lettura/scrittura alle proprietà e le chiamate ai metodi, nel caso non fossero trovati nell'albero dei simboli di una classe.
Vediamo un semplice esempio:
<?php
class Prova
{
public $prova;
private $data;
public function __construct()
{
$this->data = array();
}
public function __set($name, $value)
{
echo Scritta la proprietà .$name.<br/>;
$this->data[$name] = $value;
}
public function __get($name)
{
echo Richiesta la proprietà .$name.<br/>;
return $this->data[$name];
}
public function test()
{
echo test method;
}
public function __call($name, $args)
{
echo Richiamato il metodo .$name. con .count($args). argomenti;
}
}
$prova = new Prova;
$prova->prova = 10;
echo $prova->prova;
$prova->ciao = ciao;
echo $prova->ciao;
$prova->metodoInesistente(1, 2, 3, 4, array());
?>
Prima di terminare questa breve trattazione della programmazione ad oggetti, vorrei parlare di un aggiunta fatta a PHP che permette di caricare automaticamente i file contenenti le definizioni delle classi nel momento in cui non vengano trovate in fase di esecuzione. PHP richiama automaticamente la funzione __autoload quando non trova una classe:
<?php
function __autoload($classname)
{
echo Classe richiesta: .$classname;
require_once $classname..php;
}
$prova = new Prova();
?>
Ovviamente utilizzare direttamente il nome della classe non è un sistema corretto. Ricordiamoci sempre di controllare che il path risultante o richiesto sia realmente accessibile e sia corretta la sua richiesta.
Sessioni PHP: cosa sono, come si usanoDalla configurazione di PHP, alla gestione delle sessioni in un... |
Continuous Integration: automatizziamo i client con PhingContinuous Integration: automatizziamo i client con Phing. Esempi... |
Archiviazione delle applicazioni PHP con PharCome incorporare intere applicazioni PHP all'interno di un singolo... |
I traits in PHP 5.4Cosa sono, a cosa servono e come si unsano i traits, la novità per... |
PHP 5.4: il web server integratoImpara ad usare il web server integrato nella versione 5.4 di PHP:... |
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Guida PHP con Windows e IISInstallare ambienti per lo sviluppo e la produzione di applicazioni... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |