JetBrains WebIDE:PHP変数タイプのヒント?


81

変数に何らかの型があることをWebIDEに示唆する方法はありますか?オブジェクトの配列を繰り返す必要がありますが、オートコンプリートは利用できません。これはZendStudioで役立ちます。

/* @var ClassName $object */

JetBrainsには、オブジェクトの配列を宣言する機能があることを知っています。

/**
 * @return ClassName[]
 */

ただし、これは関数の戻り値の型でのみ機能します。


配列で動作します。特定のタイプを反復処理するArrayIteratorsで機能しますか?
redestructa 2016

回答:


144

/* @var ClassName $object */は無効なPHPDOCコメントであり、現在のバージョンのWebIDEでは解析されません。それを機能させるには、二重のアスタリスクを使用します。

/** @var ClassName $object */

また、あなたは注釈を付けることができます$arrayforeach($array as $var)持つ/** @var ClassName[] $array */$varタイプが自動的に推測されます。


角括弧表記について知りませんでした
SandorRacz 2014

2
関連する質問:私のPHPクラスは変数にマジックゲッターを使用していて、そのゲッター変数をクラスオブジェクトにバインドしたいのですが、それを行う方法はありますか?クラスで変数を定義できないため。
Sanket Sahu 2014

うわー..ただ楽しみのためにググっただけで、これが実際に物事になるという希望は本当にありません..私は私の人生でそれほど間違ったことはありませんでした、そして私が間違っていたことを嬉しく思います!この機能はとてもクールです、ありがとう!:)
Cagatay Ulubay 2016

29

すでに指摘したように、PhpStormは通常のphpdocブロックを使用します。

/** @var ClassName $object */

ただし、2.1以降では、Netbeans / Eclipse / Zend @ varアノテーションもサポートしています。

/* @var $object ClassName */

コメントはで/*はなくで始まることに注意してください/**(したがって、phpdocを使用して実際のドキュメントを生成した場合は表示されません)。また、PhpStormは任意の順序を受け入れますが、引数は交換されます。

/* @var ClassName $object */

大事なことを言い忘れましたが、それらはほとんどすべてのコード行の前に置くことができます(技術的には、phpdocブロックは特定の項目に制限されています)。


編集: 2019年の時点で、Netbeans / Eclipse / Zend @ varアノテーションはほとんど放棄されているようです。NetBeans 11はそれらをサポートしなくなり、一般に他のIDEではサポートされません。他の構文を使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.