«do» является зарезервированным ключевым словом: http://www.php.net/manual/en/reserved.keywords.php
На той же странице, в комментариях, вы видите упоминание пользователя об этом.Помните, что этот метод должен использоваться с осторожностью:
// Now define a __call() method (requires PHP > 5.2.3 to take effect)
public function __call($func, $args)
{
switch ($func)
{
case 'list':
return $this->ls((isset($args[0]))? $args[0]: null);
break;
case 'unset':
return $this->rm($args[0]);
break;
default:
trigger_error("Call to undefined method ".__CLASS__."::$func()", E_USER_ERROR);
die ();
}
Итак, вы видите, что вы можете использовать метод do
(или другое зарезервированное слово) в любом классе, используя перегрузку __call
,Внешне этот метод был бы неотличим от традиционно определенного метода.