La tecnica del "Late State Bindings" permette di superare, in ambito di programmazione ad oggetti, le limitazioni offerte dai dati statici della classe. In particolare, sappiamo che un metodo statico viene risolto (o associato) in fase di compilazione; prima della release 5.3 non esisteva una modalità standard che permetteva di cambiare questo comportamento (in realtà esistono strategie apposite o hack particolari, ma presentano non poche limitazioni e controindicazioni). Tramite l'uso della parola chiave static associata al metodo, non si risolverà più utilizzando l'ambito statico di compilazione (ovvero quello dove è stata effettuata la dichiarazione del metodo), ma verrà associato in fase di esecuzione o run-time. Vediamo, nella pagina successiva, un esempio pratico.
Gli esempi pratici più classici che spiegano egregiamente questo concetto sono questi:
<pre>
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
// stampa "A". Viene utilizzato l'ambito statico, in fase di compliazione
B::test();
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Late Static Bindings in azione
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
// stampa "B". Viene utilizzato l'ambito di esecuzione o run-time
B::test();
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
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 |