Ho trovato questo script sulla rete e...
Codice PHP:
<?php
 
class int {
    var 
$int;
    var 
$var;
 
    function 
__construct()
    {
        echo 
"Int::__construct()\n";
    }
 
    function 
__get($var)
    {
        echo 
"restituisco il valore della variabile $var: ".$this->var[$var]."\n";
        return 
$this->var[$var];
    }
 
    function 
__set($var,$val)
    {
        echo 
"setto il valore della variabile $var$val\n";
        
$this->var[$var]=$val;
    }
}
 
$var = new int;
$var->5;
echo 
"i = ".$var->i."\n";
?>
 
--OUTPUT--
Int::__construct()
setto il valore della variabile i: 5
restituisco il valore della variabile i: 5
i = 5
Qualcuno sarebbe così gentile da spiegarmi come funzioni ciò :master:
Cioè non capendo il funzionamento secondo me non sta in cielo ne in terra :/

Giustamente con __construct() viene richiamata la prima riga :
- Int::__construct()

Successivamente viene richiamata __set e non __get... perchè ? è la proprieta __set che fa in modo che venga richiamata per prima anche se si trova per ultima ?

Oppure viene richiamata grazie alla riga :
$var->i = 5;
( cosi viene spiegato nella guida )

Se fosse richiamata dalla riga $var->i = 5; mi spiegate come è possibile ciò ?
Ora ragiondoci un pò ho fatto questa supposizione ( ma credo sia sbagliata ):
Dato che la funzione __set ha due valori ( variabile e valore ) richiamando la classe e assegnando alla variabile $var il valore di 5, la variabile è per sintassi il primo attributo della funzione e il valore il secondo attributo...

Poi mi chiedo anche da dove spunti quella variabile "i" :/ Son abbastanza confuso...

E infine com'è possibile che tramite :
echo "i = ".$var->i."\n";
si richiami __get ? Cioè secondo me l'unica possibilità è che per regola __set venga richiamata per prima e __get dopo.

Ultima curiosità... è casuale che la classe sia inizializzata con la variabile $var ? O c'è una relazione con la variabile $var che sta all'interno della classe ?