Это лучше сделать с помощью магических методов, называемых __call ()
public function __call($name, $arguments)
{
$this -> pre();
return $this -> $name($arguments);
}
Что это за метод? Он отменяет вызов метода по умолчанию, так что preCall
State может быть
Ваш toyota
класс
class toyota extends car {
public function __call($name, $arguments)
{
$this -> pre();
return call_user_func_array(array($this, $name), $arguments);
}
function drive() {
}
function break() {
}
}