Está bien, solo que si vas a usar operadores con asignación, úsalo en todo el código, no mezcles...
ANTES: $result = $result * $num;
DESPUÉS: $result *= $num;
Y otro consejo, declara las variables, aunque tengan valor inicial de 0...
$i = 0;
$result = 0;
Quizás sea innecesario, pero es lo mejor.