How can a while loop be utilized in PHP to perform calculations on a string containing only numbers and operators?

To perform calculations on a string containing only numbers and operators in PHP, we can use a while loop to iterate through the string, extract each number and operator, and perform the corresponding operation. We can utilize PHP's built-in functions like `str_split()` to split the string into individual characters, and `is_numeric()` to check if a character is a number. By parsing the string character by character within a while loop, we can evaluate the mathematical expression and return the result.

<?php
function calculateString($string) {
    $numbers = [];
    $operators = [];
    $number = '';
    
    $chars = str_split($string);
    
    foreach ($chars as $char) {
        if (is_numeric($char)) {
            $number .= $char;
        } else {
            $numbers[] = (int)$number;
            $number = '';
            $operators[] = $char;
        }
    }
    $numbers[] = (int)$number;
    
    $result = $numbers[0];
    $i = 1;
    
    while ($i < count($numbers)) {
        switch ($operators[$i - 1]) {
            case '+':
                $result += $numbers[$i];
                break;
            case '-':
                $result -= $numbers[$i];
                break;
            case '*':
                $result *= $numbers[$i];
                break;
            case '/':
                $result /= $numbers[$i];
                break;
        }
        $i++;
    }
    
    return $result;
}

$string = '10+5*2-3';
echo calculateString($string); // Output: 17
?>