1

有时评论时必须参考另一种方法。这是PHP中的一些示例:

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

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

那么如果bar类中有一个非静态方法B呢?在评论中命名其他方法的最佳方式是什么?

编辑

PHP 手册似乎mysqli->affected_rowsPDO::beginTransaction. 但它不包含方法名称后的括号。这里的利弊是什么?我的意思是很明显,一个方法后面跟着括号,那么为什么不把它们排除在外呢?

提前谢谢!

4

4 回答 4

1

我会写:

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

关于我的各种变化,我最强烈的看法是信箱评论是魔鬼的作品。关于您的静态与非静态事物,我理解并使用B::bar()用于会话目的来指代函数定义,无论是否bar()是静态的。

当然,上面的示例仅用于说明目的,因为如果实际上有一个函数A::foo()除了 call 什么都不做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 标记,它会在为 B::bar() 生成的文档中自动创建一个 @usedby 引用,指向 A 类。

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

就文档而言,静态方法与@uses、@usedby 或@see 无关,仅与@static 相关。@uses 标记中的静态符号只是传达寻找 bar() 方法的范围,而不是表示 @static。

于 2009-06-11T18:12:22.177 回答
0

phpDocumentor 的文档似乎暗示您可以使用类似

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

也来自phpDocumentor 手册

@uses 与@see 非常相似,有关格式和结构的详细信息,请参阅@see 的文档。@uses 标签与@see 在两个方面不同。@see 是一种单向链接,这意味着包含 @see 标记的文档包含指向其他文档的链接。@uses 标签会自动在其他文档中创建一个虚拟的@usedby 标签,该标签链接到包含@uses 标签的文档。换句话说,它和@see 完全一样,只是自动添加了一个返回链接。

于 2009-06-11T18:36:11.573 回答