Here is the simple php code
<?
abstract class A{
abstract public function a($x);
}
class B extends A{
public function a($x)
{
echo $x;
}
}
$q = new B;
$q->a(10);
?>
which gives: PHP Fatal error: Cannot call abstract method A::a()
but changing the name of the function to something else than "a" works.
So what is really happening with the call to a(10) ? I don't see the logic here.