所以,我有一些参数期望数组的方法。像这样:
private function handler($db_data){
$formatted_date = $db_data['StartDate']->format('Y-m-d H:i:s');
}
如您所见,此数组中包含DateTime对象。问题是我不知道如何使用PHPDoc声明这个DateTime对象,所以PHPStorm告诉我找不到方法'format'。有人知道怎么解决吗?不建议压制此警告:)谢谢
答案 0 :(得分:3)
我能想出的唯一一件事(因为数组是动态类型的)是这样的:
/** @var \DateTime $unformatted_date */
$unformatted_date = $db_data['StartDate'];
$formatted_date = $unformatted_date->format('Y-m-d H:i:s');
修改强>
旁注:不要过分依赖IDE。我的回答并不是很有用,因为你的原始陈述是完全可读的,它很好地传达了意义。 phpdoc不会对你的数组进行类型检查,所以它只是删除IDE给你的警告。在我看来,它阻碍了代码的可读性。这取决于你当然,但我会使用这样的评论来处理非常复杂的数据结构。不适用于完全可读和简洁的代码。
答案 1 :(得分:0)
您可以将其存储在临时变量中并在那里添加PHPDoc。例如:
/** @var DateTime $date */
$date = $db_data['StartDate'];
那样PhpStorm应该知道可用的方法。