[解決済み] PHPDocの型ヒンティングはオブジェクトの配列のために?
2022-03-24 11:55:45
質問
つまり、PHPDoc では以下のように指定することができます。
@var
メンバー変数の宣言の上に、その型を示すヒントを表示します。そうすると、IDE、例えば PHPEd などの IDE は、扱っているオブジェクトの型がわかるので、 その変数に対するコードのヒントを提供することができます。
<?php
class Test
{
/** @var SomeObj */
private $someObjInstance;
}
?>
これは、後でオブジェクトを反復処理するときに適切なヒントを得るために、オブジェクトの配列に同じことをする必要があるまでは、とてもうまくいきます。
そこで、PHPDocタグを宣言して、メンバ変数が配列であることを指定する方法はないでしょうか。
SomeObj
s?
@var
の配列では不十分であり
@var array(SomeObj)
は有効でないように思える、など。
どのように解決するのですか?
使用する。
/* @var $objs Test[] */
foreach ($objs as $obj) {
// Typehinting will occur after typing $obj->
}
は、インライン変数のタイプヒンティングを行う場合、および
class A {
/** @var Test[] */
private $items;
}
は、クラスプロパティ用です。
PHPDoc (および Zend Studio や Netbeans などの IDE) にそのオプションがなかった '09 年の以前の回答です。
と言うのが精一杯。
foreach ($Objs as $Obj)
{
/* @var $Obj Test */
// You should be able to get hinting after the preceding line if you type $Obj->
}
Zend Studioではよくやるんですよ。他のエディターのことはわかりませんが、うまくいくはずです。
関連
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] 多次元配列の値によるソート方法
-
[解決済み] 配列の最初の要素を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】XAMPPのphpMyAdminで「設定にあるcontroluserの接続に失敗しました。
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] PHP 未定義関数への呼び出し