Facciamo un esempio perchè io non ho capito nulla.
class MyClass {
public function __call($name, $args) {
echo "È stato richiamato il metodo " . $name . " con i seguenti argomenti: ";
foreach($args as $arg) echo $arg . " ";
}
public function __callStatic($name, $args) {
echo "È stato richiamato il metodo " . $name . " in un contesto statico con i seguenti argomenti: ";
foreach($args as $arg) echo $arg . " ";
}
}
$obj1 = new MyClass();
// stampa "È stato richiamato il metodo setName con i seguenti argomenti: George"
$obj1->setName("George");
// stampa "È stato richiamato il metodo setName in un contesto con i seguenti argomenti: George"
MyClass::setName("George");
################################################## #################################
I metodi magici presenti in questo codice sono 2:
__call
__callstatic
call riceve come parametri $name e $args giusto?
Si istanzia la classe $obj1=new MyClass();
$obj-> setName("George"); >>>>>Qui cosa fa esattamente? Cosa richiama?

Rispondi quotando