Всем привет !
В данный момент читаю книгу "PHP Cookbook (3rd edition)" от David Sclar, Adam Trachtenberg.
В главе 7.15 приведен код ,я туда добавил свой метод WhyNotCall():
class User {
public function WhyNotCall(){
 echo "1 2 3";
}
static function find($args) {
 echo "<pre>";
 print_r($args);
 echo "</pre>";
}
static function __callStatic($method, $args) {
 if (preg_match('/^findBy(.+)$/', $method, $matches)) {
   return static::find(array('field' => $matches[1],
     'value' => $args[0]));
 }
}
}
$user = User::findById(123);
$user = User::findByEmail('rasmus@php.net');
Вопросы:
1) Мне хотелось бы добавить этот метод в __callStatic, чтобы она всегда выполнялась при вызове некого статического метода. Как сделать это? Я пробовал добавить это в __callStatic прямо перед return :
...
$this->WhyNotCall();
...
не помогло.
2) Почему static ? Просто впервые вижу такую конструкцию
.....
 return static::find(array('field' => $matches[1],
     'value' => $args[0]));
.....