Подскажите пожалуйста зачем нужно указывать тип параметра метода и тип того, что метод возвращает в phpDoc, если в седьмой версии php в самом методе можно указать тип параметров и тип возвраемого значания? Это ведь бессмысленное дублирование. Зачем так делают?
/**
* Very important function
*
* @param string $param
* @return array
*/
function func(string $param) :array {
}
Существуют такие сценарии при которых функция возвращает значения, которые нельзя описать хинтом. Грубо говоря вот так
/**
* @return Product|false
*/
public function getProduct(int $id)
{
// ...
}
Как правило это неправильно (Битрикс особенно любит так делать), зато док-блок точно описывает что может вернуть метод. Здесь, кстати, еще один тонкий момент: можно написать не bool, а именно false, потому что хоть тип и bool, значения true там не будет никогда. Короче нужны эти штуки)
WordPress тоже страдает таким повсеместно, там часто бывает целый зоопарк на выходе типа WP_Post|int|bool|null (при чем int может быть только 0, а bool - false).