feat(stub): 优化常量表达式打印逻辑

- 添加对常量表达式类型的支持
- 实现整数常量的类型后缀处理
- 添加对PHP_INT_MIN和PHP_INT_MAX的特殊处理
- 保留原有表达式打印功能的兼容性
- 提升代码的可读性和维护性
pull/1/head
韩天峰 7 months ago
parent 625604d375
commit 3c63ff2cfd
  1. 16
      bin/gen_stub.php

@ -2428,7 +2428,21 @@ class EvaluatedValue
}
$expr = preg_replace("/(^'|'$)/", '"', $expr);
} else {
$expr = $prettyPrinter->prettyPrintExpr($this->expr);
if ($this->expr instanceof Expr\ConstFetch) {
$value = constant($this->expr->name->__toString());
$expr = strval($value);
if (is_int($value)) {
if ($value === PHP_INT_MIN) {
$expr = 'LONG_MIN';
} elseif ($value === PHP_INT_MAX) {
$expr = 'LONG_MAX';
} else {
$expr = $expr . 'L';
}
}
} else {
$expr = $prettyPrinter->prettyPrintExpr($this->expr);
}
}
return $expr[0] == '"' ? $expr : preg_replace('(\bnull\b)', 'NULL', str_replace('\\', '', $expr));
}

Loading…
Cancel
Save