ora, a prescindere dall'utilità ... qualcuno sa dirmi perchè sto diamine di PHP 5 non riesce a seguire un filo logico che è uno?
Codice PHP:
<?php
class DynamicFunction {
private $callback;
function __construct(){
$this->callback = create_function('', 'return "Hello World!";');
}
function __toString(){
return ''.$this->callback;
}
}
$f = new DynamicFunction();
$s = ''.$f;
echo $s(); // Hello World!
echo $f(); // Fatal Error ...
?>
ogni consiglio sul come emulare il comportamento senza errori è bene accetto (considerando che ovviamente il call_user_func(_array)? sull'istanza ovviamente va ma non è quello che cerco)
Il succo è questo:
perchè se assegno ad una variabile il nome di una funzione posso usarla "come per magia" stile shortcut di funzione mentre se esplicito un __toString per avere un nome funzione questo non è il reale valore letto/usato dal parser?
Codice PHP:
// pure questo funziona, nonostante il notice
$s = str_replace;
echo $s('a', 'z', 'abc');