1

コメントするときに別のメソッドを参照する必要がある場合があります。ここにPHPのいくつかの例があります:

class A
{
    /**
     * @see B::bar
     */
    public function foo()
    {
        B::bar();
    }
}

class B
{
    public static function bar()
    {
        // ...
    }
}

barでは、クラスに非静的メソッドがあるとしたらどうでしょうBか。コメントで他のメソッドに名前を付ける最良の方法は何ですか?

編集

PHPのマニュアルmysqli->affected_rowsも同様に使用しているようPDO::beginTransactionです。ただし、メソッド名の後に括弧を含めることはできません。ここでの賛否両論は何ですか?メソッドの後に括弧が続くことは非常に明白です。それでは、なぜそれらを省略しないのですか?

事前にThx!

4

4 に答える 4

1

私は書くだろう:

class A {
    // see B::bar()
    public function foo() {
        B::bar();
    }
}

私のさまざまな変更に関して私が最も強く抱いている意見は、レターボックスのコメントは悪魔の仕事であるということです。あなたの静的なものと非静的なものに関して、私は、静的B::bar()であるかどうかにかかわらず、会話の目的で関数定義を参照することを理解し、使用していbar()ます。

上記の例は、もちろん、説明のみを目的としています。実際にA::foo()呼び出すだけの関数がB::bar()ある場合は、コメントを含めません。私のコードを読んでいる人がばかである場合、私は助けたくないからです。彼。

于 2009-06-11T17:00:33.177 に答える
1

演算子を使用して->、クラスメソッドではなくインスタンス/オブジェクトメソッドを参照できます。PHP.netは、マニュアルでもそれを行っています(たとえば、MySQLiクラスを参照してください)。

于 2009-06-11T17:01:08.213 に答える
1

私の意見では、あなたの例で十分です。ただし、B::barをB::bar()と呼ぶ必要があります。

@uses php-docタグの使用を検討することをお勧めします。これにより、クラスAを指すB :: bar()用に生成されたドキュメントに@usedby参照が自動的に作成されます。

/**
 * @uses B::bar()
 */

ドキュメントに関する限り、静的であるメソッドは@ uses、@ usedby、または@seeには関係なく、@staticにのみ関係します。@usesタグの静的表記は、@ staticを示すのではなく、スコープを通信してbar()メソッドを検索するだけです。

于 2009-06-11T18:12:22.177 に答える
0

phpDocumentorのドキュメントは、次のようなものを使用できることを示唆しているようです。

class A
{
  /**
   * @see B
   * @see function bar()
   */
  public function foo()
  {
    // ...
  }
}

また、phpDocumentorマニュアルから:

@usesは@seeと非常によく似ています。形式と構造の詳細については、@seeのドキュメントを参照してください。@usesタグは、2つの点で@seeとは異なります。@seeは一方向のリンクです。つまり、@ seeタグを含むドキュメントには、他のドキュメントへのリンクが含まれています。@usesタグは、@usesタグを含むドキュメントにリンクする他のドキュメントに仮想@usedbyタグを自動的に作成します。つまり、リターンリンクが自動的に追加されることを除けば、@seeとまったく同じです。

于 2009-06-11T18:36:11.573 に答える