You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用declare(strict_types=1)与namespace时,文件级DocBlock的正确放置位置

文件级DocBlock在strict_types和namespace下的正确位置

正确的文件结构顺序(遵循通用PHP编码规范)

  • 第一步:PHP起始标签 <?php
  • 第二步:declare(strict_types=1);(注意必须加分号,你提供的示例里漏了这个分号)
  • 第三步:文件级DocBlock
  • 第四步:namespace 声明
  • 第五步:use 语句
  • 第六步:业务代码(常量判断、类定义等)

你的示例代码说明

你给出的示例顺序是正确的,仅需要补充declare语句末尾的分号。修正后的代码如下:

<?php
declare(strict_types=1);

/**
 * DocBlock
 */

namespace Xxx\Xxx;

use Xxx\Xxx;

if (!defined('ABSPATH')) {
    exit;
}

/**
 * 类级DocBlock
 */
class Xxx {
    // ...
}

为什么不能把DocBlock放在PHP起始标签下方?

declare(strict_types=1)需要作为PHP起始标签后的第一个可执行语句(注释不属于可执行语句,但编码规范明确要求declare优先于文件级DocBlock)。虽然把DocBlock放在起始标签和declare之间不会触发语法错误,但不符合通用编码规范,会导致团队协作时代码风格混乱。

内容的提问来源于stack exchange,提问作者user23587753

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:13:15