1. <?php
    2. class Solution {
    3. public function myAtoi($str) {
    4. if (!$str) return 0;
    5. $str = trim($str);
    6. $first = $str[0];
    7. $sign = 1; // 正整数
    8. $res = 0;
    9. if ($first == '+') {
    10. $start = 1;
    11. } else if ($first == '-') {
    12. $start = 1;
    13. $sign = -1;
    14. } else {
    15. $start = 0;
    16. }
    17. for ($i = $start; $i < strlen($str); $i++) {
    18. if (!is_numeric($str[$i])) {
    19. return $res * $sign;
    20. }
    21. $res = $res * 10 + $str[$i];
    22. if ($res >= pow(2, 31)) {
    23. if ($sign > 0) {
    24. return (pow(2, 31) - 1) * $sign;
    25. }
    26. return pow(2, 31) * $sign;
    27. }
    28. }
    29. return $res * $sign;
    30. }
    31. }