Note that when you use implementation of factorial that ClaudiuS made, you get results even if you try to calculate factorial of number that you normally can't, e.g. 2.5, -2, etc. Here is safer implementation:<?php/** * Calculates a factorial of given number. * @param string|int $num * @throws InvalidArgumentException * @return string */function bcfact($num){ if (!filter_var($num, FILTER_VALIDATE_INT) || $num <= 0) { throw new InvalidArgumentException(sprintf('Argument must be natural number, "%s" given.', $num)); }