使用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
相关产品推荐
相关产品推荐

