Class MyClass{

public $a=10;

public function sayHello(){
echo "Hello";

$myClass=new Myclass();

echo $myClass->a;

echo $myClass->sayHello();

}
}

Lasciando perdere eventuali errori sintattici, se vedete bene io posso richiamare la proprietà a con echo $myClass->a; e il metodo con echo $myClass->sayHello();

Invece nel caso del metodo magico

class MyClass {
public function __call($name, $args) {
echo "È stato richiamato il metodo " . $name . " 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");

Quest'ultima riga di codice chiama un qualcosa di inesistente e gli passa George come parametro. Boh!!!

Comunque la teoria ad oggetti l'ho fatta tutta e capita anche abbastanza bene. Il problema sono questi metodi magici. Li posso tralasciare o sono importanti?