PhpStorm 2026.1 ヘルプ

PHP 8.0

PHP 8.0 では、新機能、構文の追加、バグ修正が行われています。このバージョンの新機能の詳細については、リリースのお知らせ(英語)を参照してください。コードの移行の詳細については、PHP 7.4.x から PHP 8.0.x への移行(英語)ガイドを参照してください。

名前付き引数

名前付き引数(英語)では、位置ではなくパラメーター名に基づいて関数に引数を渡すことができます。このようにして、関数呼び出しは自己文書化され、引数の順序は任意になります。

関数呼び出しでは、提供されているクイックフィックス Alt+Enter を使用して、パラメーター名を 1 つずつ、またはすべての引数に一度に追加できます。渡された値がデフォルト値と一致する引数がリストにある場合、PhpStorm はそれらを未使用としてハイライトし、削除するためのクイックフィックスを提供します。

Adding named arguments

属性

属性(英語)を使用すると、クラス、プロパティ、関数などの宣言に構造化された構文メタデータを提供できます。PHPDoc コメントとは異なり、属性は言語レベルでサポートおよび検証されます。

属性を作成するには、クラス宣言の上に #[Attribute] マーカーを追加します。属性内で、オプションでターゲットフラグと再現性フラグを提供します。コード補完を使用するには、Ctrl+Space を押します。

Creating a PHP attribute

いくつかのコードインスペクションは、属性が正しく使用されていることを確認できます。

  • クラスを属性として使用することはできませんインスペクションは、クラスの引数宣言に #[Attribute] アノテーションが付けられていることを確認します。

    Class not annotated with attribute
  • 該当しない属性ターゲット宣言インスペクションは、属性の引数宣言で #[Attribute::Target] アノテーションが付けられていることを確認します。クラスやメソッドなどの正しいターゲットに適用されます。

    Incorrect attribute target
  • 繰り返し不可能な属性インスペクションは、引数宣言で Attribute::IS_REPEATABLE フラグが設定されていない状態で繰り返される属性をハイライトします。

    Non-repeatable attribute

共用体タイプ

共用体タイプ(英語)は、単一の値ではなく、複数の異なるタイプの値を受け入れます。共用体タイプは Type1|Type2|... として指定されており、通常のタイプが受け入れられるすべての場所で使用できます。既存のすべての PhpStorm コーディング支援機能は、共用体タイプを完全にサポートします。

共用体型が PHPDoc を介して提供される場合、PhpStorm は、それをネイティブの共用体型に変換するためのクイックフィックス Alt+Enter を提供します。

Converting a PHPDoc union type to native declaration

ネイティブに宣言された共用体型を使用すると、PhpStorm は呼び出しを分析し、問題のある領域を検出できます。チェックは、プロパティ、引数、戻り値のすべてのレベルで機能します。

Type checks in union type declaration

コンストラクタープロパティプロモーション

コンストラクタープロパティプロモーション(英語)を使用すると、コンストラクターでクラスプロパティを直接宣言して初期化できます。publicprotectedprivate などの可視性修飾子をコンストラクター引数に指定すると、引数はオブジェクトプロパティとして解釈され、その値がこのプロパティに割り当てられます。これにより、オブジェクトが小さくなり、読みやすくなり、コンストラクターを使用して変数を初期化する場合の定型コードの量を減らすことができます。

クイックフィックス Alt+Enter を使用して、コンストラクター引数をプロモートされたプロパティに変換できます。

Converting constructor arguments to promoted properties

PhpStorm は、プロモートされたプロパティが PHP8 の制約(英語)に従って使用されていることを確認します。例: プロモートされたプロパティは、コンストラクターの外部または抽象コンストラクターの内部で宣言できません。また、可変個引数パラメーターはプロモートできません。

Promoted properties checks

一致式

一致式(英語)switch に似ていますが、より安全なセマンティクスを提供し、値を返すことができます。PhpStorm は、match 式に変換できる switch ステートメントを検出し、これを行うための専用のクイックフィックス Alt+Enter を提供します。

Converting a switch statement to a match expression

いくつかのコードインスペクションは、match 式が正しく使用されていることを確認できます。

  • 式の引数の型が指定された条件のいずれにも一致しない場合、式によって Fatal Error が発生します。このような場合、付属のクイックフィックスを使用して default アームを追加できます。

    Adding a default match arm
  • 未使用の「一致」条件(英語)インスペクションは、決して一致しない条件をハイライトし、削除することを提案します。

    Deleting an unmatched condition
  • 未使用状態(英語)インスペクションは、実行されない重複条件を検出します。それらの間を移動して、アーム全体または値のリストから重複する値のみを削除できます。

    Adding a default match
  • 'match' 式で腕が重複しています(英語)インスペクションは、異なるアーム内の同一のボディを検出します。これを 1 つにマージして、ブロックのサイズを縮小できます。

    Merging duplicate match arms
  • 「一致」式は三項演算子に置き換えることができます(英語)インスペクションは、シングルアームと default アームの式を検出し、3 値式に置き換えることができます。

    Converting a match expression to a ternary expression
  • 一致式にデフォルトのアームしかない場合は、おそらく冗長です。冗長な「一致」式(英語)インスペクションは、そのような式をハイライトし、削除できるようにします。

    Simplifying a match expression

Nullsafe 演算子

nullsafe 演算子 (英語) ?-> を使用すると、ネストされた null チェック条件を連鎖呼び出しに置き換えることができます。

Using the nullsafe operator

PhpStorm は、nullsafe 演算子が書き込みコンテキストまたは参照として誤って使用されていないことを確認します。

Nullsafe operator inspections checks

キャプチャーしない漁獲量

PHP 8 以降では、例外を変数にキャプチャーせず(英語)にキャッチできます。未使用のローカル変数(英語)インスペクションは、catch ステートメント内で使用されていない変数を検出し、削除するためのクイックフィックス Alt+Enter を提供します。

Nullsafe operator inspections checks

式を投げる

PHP 8 では、式が受け入れられるすべての場所で例外のスローが許可さ(英語)れます。たとえば、アロー関数、合体演算子 ??、三項演算子 ?: などです。PhpStorm は、throw 式をすばやく追加できるライブテンプレートを提供します。適用するには、thr と入力し、Tab を押します。

Throwing an exception in an expression

オブジェクトで: : class を使用する

以前の PHP バージョンでは、クラス FQN を取得するには、ClassName::class を使用できました。ただし、オブジェクトでは、get_class() を呼び出す必要がありました。PHP 8 では、get_class() 呼び出しを $object::class に安全に置き換えることができます。PhpStorm は、このためのクイックフィックス Alt+Enter を提供し、::class が不適切に使用された場合にも警告します。

Using ::class on an object

文字列の新機能

PHP 8 には、文字列を操作するためのいくつかの新しい関数が導入されています。str_contains(英語) 関数は、文字列が別の文字列に含まれているかどうかを確認します。str_starts_with(英語) 関数と str_ends_with(英語) 関数は、文字列が特定の部分文字列で開始するか終了するかを決定するために使用されます。'str *' 呼び出しは PHP8'str_ * ' 呼び出しに置き換えることができます(英語)インスペクションは、strpos および substr 呼び出しをハイライトします。これらの呼び出しは、最新のより自明な代替手段に置き換えることができ、対応するクイックフィックス Alt+Enter を提供します。

Functions for working with strings
2024 年 6 月 26 日

関連ページ:

PHPDoc コメント

ドキュメントコメントの場合、PhpStorm はデフォルトで有効になっている補完を提供します。PhpStorm は、の開始タグを入力してを押すか、を押して、コード構造(クラス、メソッド、関数など)をドキュメント化するときに、PHPDoc ブロックのスタブを作成します。選択に応じて、PhpStorm は必要なタグを作成するか、空のドキュメントスタブを追加します。追加の PHP 固有のタグが必要な場合、PhpStorm は現在のコンテキストに関連するタグ名を提案するコード補完を提供します。特定の...

コード補完

基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を補完するのに役立ちます。PhpStorm はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します。候補にはライブテンプレートも含まれます。補完機能は英語以外のキーボードレイアウトでも利用できます。基本補完を呼び出すデフォルトでは、PhpStorm は入力時に自動的にコード補完ポップアップを表示します。あるいは、を押すか、メインメニューからを選択することもできます。2 回目にコード補完を呼び出すと、アク...

コードインスペクション

PhpStorm には、プロジェクト内の異常なコードを検出して修正する一連のコードインスペクションがあります。IDE は、さまざまな問題を見つけてハイライトし、デッドコードを見つけ、考えられるバグやスペルの問題を見つけ、全体的なコード構造を改善することができます。インスペクションは、すべてのプロジェクトファイルまたは特定のスコープでのみ(たとえば、本番コードまたは変更されたファイルでのみ)コードをスキャンできます。すべてのインスペクションには、問題がコードに影響を与える可能性がある程度の重大度レ...

Composer 依存関係マネージャー

PhpStorm は Composer 依存関係マネージャーと統合されています。これにより、Packagist またはカスタムリポジトリからのパッケージをプロジェクトの依存関係として宣言し、IDE から管理できます。PhpStorm は以下を提供します。一般的な Composer コマンド (init、install、update) と、その他の Composer コマンドを実行するための専用ユーザーインターフェース。コマンド出力は Composer ログコンソールに表示されます。PhpStorm プロ...

ソースコードの作成と編集

コードを使用する場合、PhpStorm は作業にストレスがないことを保証します。追加、選択、コピー、移動、編集、折りたたみ、出現箇所の検索、コードの保存に役立つさまざまなショートカットと機能を提供します。エディター内のナビゲーションについては、エディターの基本を参照してください。ファイルの読み取り専用属性の切り替えファイルが読み取り専用の場合、ステータスバー、エディタータブ、プロジェクトツールウィンドウで、閉じた鍵のアイコンがマークされます。ファイルが書き込み可能である場合、ステータスバーに開い...

ライブテンプレート

ライブテンプレートを使用して、ループ、条件、宣言、print ステートメントなどの一般的な構造をコードに挿入します。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数に移動します。を押して、前の変数に移動します。ライブテンプレートの種類:次のタイプのライブテンプレートが区別されます。シンプルなテンプレートには固定プレーンテキストのみが含まれています。シンプルなテンプレートを展開すると、テキストが自動