PHPStorm PHPDoc如何声明具有DateTime对象的数组参数呢?

时间:2018-05-29 11:53:17

标签: php phpdoc

所以,我有一些参数期望数组的方法。像这样:

private function handler($db_data){
    $formatted_date = $db_data['StartDate']->format('Y-m-d H:i:s');
}

如您所见,此数组中包含DateTime对象。问题是我不知道如何使用PHPDoc声明这个DateTime对象,所以PHPStorm告诉我找不到方法'format'。有人知道怎么解决吗?不建议压制此警告:)谢谢

2 个答案:

答案 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应该知道可用的方法。