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

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

@ -2427,9 +2427,23 @@ class EvaluatedValue
throw new Exception("Expression at line " . $this->expr->getStartLine() . " must be a scalar string");
}
$expr = preg_replace("/(^'|'$)/", '"', $expr);
} else {
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