有时在评论时必须引用另一种方法。这里是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
。但它没有包括方法名称后面的括号。什么是亲和骗局?我的意思是很明显,一个方法后跟括号,所以为什么不留下它们呢?
答案 0 :(得分:1)
我会写:
class A {
// see B::bar()
public function foo() {
B::bar();
}
}
关于我的各种变化,我最坚定的意见是信箱评论是魔鬼的工作。关于静态与静态的关系,我理解并使用B::bar()
来引用函数定义以用于会话目的,无论bar()
是否为静态。
上面的示例当然仅用于说明目的,因为如果实际上有一个函数A::foo()
除了调用B::bar()
之外什么都不做,我就不会包含注释,因为如果这个人读我的代码是个白痴,我不想帮助他。
答案 1 :(得分:1)
您可以使用->
运算符来引用实例/对象方法而不是类方法。 PHP.net也在他们的手册中做到了这一点(例如,参见MySQLi class)。
答案 2 :(得分:1)
在我看来,你的榜样已经足够了。不过,你应该将B :: bar称为B :: bar()。
您可能需要考虑使用@uses php-doc tag,它将在为B :: bar()生成的文档中自动创建@usedby引用,并指向A类。
/**
* @uses B::bar()
*/
就文档而言,静态方法与@uses,@usedby或@see无关,只与@static有关。 @uses标记中的静态表示法只是传达范围以查找bar()方法,而不是表示@static。
答案 3 :(得分:0)
phpDocumentor的文档似乎暗示你可以使用像
这样的东西class A
{
/**
* @see B
* @see function bar()
*/
public function foo()
{
// ...
}
}
同样来自phpDocumentor manual:
@uses与@see非常相似,请参阅 有关详细信息,请参阅@see的文档 格式和结构。 @uses标签 与@see有两点不同。 @see是 单向链接,意思是 包含@see标记的文档 包含指向其他的链接 文档。 @uses标签 自动创建虚拟 其他文档中的@usedby标记 链接到文档 包含@uses标记。其他 单词,它就像@see,除了 返回链接会自动添加。