你总是可以滥用类型转换: function zpad(int $value, int $pad): string { return substr(1, $value + 10 ** $pad); } 如果 10 ** pad > INT_MAX 或者 value >= 10 * pad,则此方法将不能按预期工作。