ホームページ  >  記事  >  バックエンド開発  >  PHP 7.0 では、現在、戻り値の型が null または void の関数を定義することはできません。

PHP 7.0 では、現在、戻り値の型が null または void の関数を定義することはできません。

WBOY
WBOYオリジナル
2016-06-20 12:35:243228ブラウズ

TL;DR:

  • PHP 7.0 では、関数の戻り値を null または void として宣言しないでください。PHP7.1 では問題ありません。
  • 現在、関数の戻り値を null 許容値として宣言することはできません。

はじめに

今日、開発者は、戻り値 null で定義された関数をロードできないという問題に遭遇しました:

クラス名として 'Appnull' を使用できません予約されているので

トレースしたところ、関数の戻り値が null として宣言されていることがわかりました。

トラックダウン

まず、戻り値が null として宣言できるかどうかを確認します:

RFC PHP RFC の将来の作業に記載されているとおり: 戻り値の型宣言:

関数が何も返さないことを宣言できるようにします (Java と C では無効)

これは、この RFC が戻り値が null または空所!

しかし、PHP RFC: Void Return Type は void がサポートされていることを示しています。つまり、戻り値はありませんが、null の宣言は許可されていません。 (理由は示されています)

しかし、この RFC は PHP 7.1 で実装される予定です。そのため、現在 PHP 7.0 では利用できません。

追伸: 実験の結果、PHP7.0 では戻り値が void であると宣言すると構文チェックは通過できますが、戻り値がどのように返されたとしても (直接返されたかどうかに関係なく) エラーが報告されます。 ):

AppUser::func() の戻り値は void のインスタンスである必要があり、何も返されません

さらに、戻り値を宣言する問題については、 nullable はまだ草案段階にあり、やるべきことはまだたくさんあります: PHP RFC: Nullable Types の宣言。

追記

RFC の将来の作業: 戻り値の型宣言には次の内容があります:

型分析を行うことで実行時のパフォーマンスを向上させます。

したがって、現時点では、型の宣言は開発の促進とパフォーマンスの向上を目的としていますそれは次の計画でのみ行われます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。