7

PHP 7 の戻り値の型宣言を試してみたかった(この目的のために Windows で PHP 7RC3 を使用しています)。

非常に単純なものから始めたかった:

function getme() : integer
{
    return 434;
}
echo getme();

しかし、これは私に致命的なエラーを与えます:

致命的なエラー: Uncaught TypeError: getme() の戻り値は整数のインスタンスである必要があり、整数が返されます

次に、戻り値をキャストしようとしましたが return (integer) 434;return (int) 434;同じエラーが発生しました。

最後に私も試しました:

function getme() : integer
{
    $i = 434;
    return (integer) $i;
}
echo getme();

同じ結果で。

私は何を間違っていますか?
または私はここで何を誤解していますか?

説明と助けをありがとう!

更新これが、代わりに
使用する必要があると思った理由です(Toby Allenへの特別な注意):integerint

https://wiki.php.net/rfc/return_typesから:

無効な使用例 (...)

// Int is not a valid type declaration

function answer(): int {
    return 42;
}
answer();
4

1 に答える 1

15

新しい予約語は追加されません。int、float、string、および bool という名前は、型宣言として認識および許可されますが、クラス/インターフェイス/特性名 (use および class_alias を含む) として使用することは禁止されています。

から: https://wiki.php.net/rfc/scalar_type_hints_v5

TL/DR:

function getme() : int
{
    return 434;
}

echo getme();
于 2015-09-19T08:11:52.913 に答える