1. ホーム
  2. php

[解決済み] 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ではよくやるんですよ。他のエディターのことはわかりませんが、うまくいくはずです。