В этом примере:
/** * * @param <type> $foo * @return <type> */ function do_something($foo) { return $foo->really_do_something(); }
Как указать, что $ foo должно быть класса Foo?
/** * * @param Foo $foo * @return <type> */ function do_something(Foo $foo) { return $foo->really_do_something(); }
Более поздние версии PHP (я думаю, PHP 5 и более) имеют типы параметров:
function do_something(Foo $foo) { return $foo->really_do_something(); }
Что вызовет исключение, если $ foo не является типом Foo.
Я полагаю, phpDoc подхватит это