create a function which accepts two numbers and a symbol to indicate if the user wants to add, substract, multiply, or divide. Include the call to the function in a try/catch structure to capture any attempt to divide by zero

<?php
function add(int $add1, int $add2){
    $result = $add1 + $add2;
    return $result;
}
function subtract(int $subtract1, int $subtract2){
    $result1 = $subtract1 - $subtract2;
    return $result1;
}
function multiply(int $multiply1, int $multiply2){
    $result2 = $multiply1 * $multiply2;
    return $result2;
}
function divide(int $divide1, int $divide2){
    $result3 = $divide1 % $divide2;
    return $result3;
}


$a = "divide";
switch ($a) {
    case "add":
        echo add(12,12);
    break;

    case "subtract":
        echo subtract(12,3);
    break;

    case "multiply":
        echo multiply(12,12);
    break;

    case "divide":
        echo divide(12,2);
    break;

    default:
        echo "String was not found";
    break;
}

bertrc
$result3 = $divide1 % $divide2;

The division operator is /, you used the modulus operator %.

    And because I'm bored, a bit of a modification to allow using floats as well, directly returning the operation instead of storing it in a variable, handling the divide by 0 potential, and leveraging the ability to reference a function via a variable to allow more streamlined testing (IMO):

    function add(int|float $add1, int|float $add2){
      return $add1 + $add2;
    }
    function subtract(int|float $subtract1, int|float $subtract2){
      return $subtract1 - $subtract2;
    }
    function multiply(int|float $multiply1, int|float $multiply2){
      return $multiply1 * $multiply2;
    }
    function divide(int|float $divide1, int|float $divide2){
      if($divide2 == 0) { throw new Exception("Divide by zero not allowed"); }
      return $divide1 / $divide2;
    }
    
    $tests = [[1, 2], [4.5, 3.2], [0, 99.999], [-99, 0.0]];
    $ops = ['add', 'subtract', 'multiply', 'divide'];
    try {
      foreach($tests as [$a, $b]) {
        foreach($ops as $op) {
          echo "$a $op $b = " . $op($a, $b) . "\n";
        }
      }
    } catch(Exception $e) {
      echo $e->getMessage()."\n";
    }
    
    /* Output:
    
    1 add 2 = 3
    1 subtract 2 = -1
    1 multiply 2 = 2
    1 divide 2 = 0.5
    4.5 add 3.2 = 7.7
    4.5 subtract 3.2 = 1.3
    4.5 multiply 3.2 = 14.4
    4.5 divide 3.2 = 1.40625
    0 add 99.999 = 99.999
    0 subtract 99.999 = -99.999
    0 multiply 99.999 = 0
    0 divide 99.999 = 0
    -99 add 0 = -99
    -99 subtract 0 = -99
    -99 multiply 0 = -0
    Divide by zero not allowed
    */
    

    All that being said, if this is some sort of assignment that specifically wants you to "create a function which accepts two numbers and a symbol", I guess this does not answer that, as you have created 4 separate functions. In that case, you probably want that switch (or something similar) within the target function, which would accept the operation as a third parameter, something like:

    function arithmetic(int|float $a, int|float $b, string $operation): int|float {
      switch(strtolower($operation)) {
        case 'add':
          return $a + $b;
          break;
        case 'subtract':
          return $a - $b;
          break;
        case 'multiply':
          return $a * $b;
          break;
        case 'divide':
          if($b == 0) { throw new Exception("Division by zero not allowed"); }
          return $a / $b;
          break;
        default:
          throw new Exception("Invalid operation '$operation'");
      }
    }
    
    $tests = [[1, 2], [4.5, 3.2], [0,99.999], [-99, 0.0], [5, 10]];
    $ops = ['add', 'subtract', 'multiply', 'divide'];
    try {
      foreach($tests as [$a, $b]) {
        foreach($ops as $op) {
          echo "$a $op $b = " . arithmetic($a, $b, $op) . "\n";
        }
      }
    } catch(Exception $e) {
      echo $e->getMessage()."\n";
    }
    
    Write a Reply...