1

関数が複数の型を返すという、少し変わったシナリオに遭遇しましたstring or integer。戻り値の型を宣言しようとしています。ここで宣言するベストプラクティスを教えてください。

null または他のタイプをこのようなものを使用できることを認識しています

/**
 * Get the result status as a formatted string
 * @return string|null formatted status
 */
public function abStatus() : ?string {

しかし、私の関数は以下のようなもので、文字列または整数を返します

/**
 * Get the score for this action
 * @return string|int
 */
public function getAlphaScore() {
    if ($this->type != self::TYPE_ACTION) {
        return 0;
    }
    if (empty($this->action->status < self::STATUS_IMPORTED) {
        return 'U';
    }

    return ActionCalculator::actionScore($this->action->score);//returns integer here
}

さて、戻り値の型で関数をどのように宣言すべきか疑問に思っています

public function getAlphaScore() : string {

また

 public function getAlphaScore() : int {

また、複数の戻り値の型が返されるこのような状況でのアイデア/提案/ベスト プラクティスを知りたい

/**
 * @param $compareAction
 * @return float|int|null
 */
4

3 に答える 3

0

その場合、戻り値の型を宣言しません。

またはのいずれstringintです。両方を持つことはできません。

ここで、PHP の弱い型付けの出番です。

于 2019-05-10T13:29:53.860 に答える