小编use*_*673的帖子

我什么时候应该在PHPDoc类型提示和docblocks中使用NULL?

我很困惑何时在使用nullPHPDoc描述变量时使用as作为类型.类型提示是否应该描述外部呼叫者预期和遵守的希望和期望,或者他们是否应该记录变量的所有可能类型,即使希望它在实践中是一种非常特定的类型?

示例1:默认值.以下函数仅需要非空值.但是,如果没有传递任何值,则默认为null并明确检查该值作为确定是否传递任何内容的方法,并为该情况返回特殊值.希望没有外部调用者将传递除整数之外的任何内容.应该null@param下面的类型中使用,还是应该只指定,int因为如果传递任何东西,我们想要传递的是什么?

/**
 * @param int|null $bar
 */
function foo($bar = null) {
  if(is_null($bar)) { 
    return 'ABC';
  }

  return doSomething($bar);
}
Run Code Online (Sandbox Code Playgroud)

示例2:实例属性.我们只想要$ bar来包含整数.也就是说,如果没有为bar设置任何内容,则此实例属性的默认PHP值为null.我是否需要考虑使用$ bar的每个地方,可能的null类型如下所示?

class Foo {
  /**
   * @var int|null
   */
  public $bar;

  /**
   * @param int|null $bar
   */
  public setBar( $bar) {
    $this->bar = $bar;
  }

  /**
   * @return int|null
   */
  public function getBar() {
    return $this->bar;
  }
}
Run Code Online (Sandbox Code Playgroud)

基本上我发现自己几乎每个人都乱扔垃圾@param@var声明,|null因为从技术上来说它可能就是那个价值.但在实践中它应该.我是否应该期望我的几乎所有类型都包含 …

php phpdoc docblocks

11
推荐指数
2
解决办法
4702
查看次数

标签 统计

docblocks ×1

php ×1

phpdoc ×1