PHP 7 docblock和函数返回类型?

Mic*_*ael 2 php

如果我声明我的函数返回类型,我是否必须在php 7中创建docblock?

这样做就足够了,例如:

public function findByLogin(string $login): User
{
    return User::where(User::COL_LOGIN, $login)->first();
}
Run Code Online (Sandbox Code Playgroud)

或者我应该这样做:

/**
 * Find a user by its login.
 *
 * @param string $login
 * @return User
 */
public function findByLogin(string $login): User
{
    return User::where(User::COL_LOGIN, $login)->first();
}
Run Code Online (Sandbox Code Playgroud)

感觉像双重文档.

Joh*_* N. 5

您不需要将PHPDocs添加到您的代码中 - 返回类型声明很好.

添加PHPDoc的唯一原因是定义更多信息/更具体的类型.

在这里看到这个例子:

/**
 * @return string[] An array of strings
 */
public function findByLogin(): array
{
    return ['foo', 'bar'];
}
Run Code Online (Sandbox Code Playgroud)

所以,如果您对返回类型没问题,请随意跳过PHPDoc.如果你想提供更多关于params/return类型的标准化信息:添加一个额外的PHPDoc.

像PHPStorm这样的工具有助于保持参数,返回类型和PHPDoc同步.如果两者不匹配,它们将显示警告.