Before we begin learning of Factorial in PHP, let us understand the term factorial. Factorial of a number is the product of all numbers starting from 1 up to the number itself. While calculating the product of all the numbers, the number is itself included.
ADVERTISEMENT Popular Course in this category PHP DEVELOPER - Specialization | 8 Course Series | 3 Mock TestsStart Your Free Software Development Course
Web development, programming languages, Software testing & others
Factorial of a number is calculated for positive integers only. The factorial of 0 is always 1 and the factorial of a negative number does not exist. It is denoted by ‘!’ preceded by the number. Example n! where n is the number
So,
Factorial of 5! means factorial of 5
Factorial of 7! means factorial of 7
For example, the factorial of number 5 is:
5! =5*4*3*2*1 = 120
Similarly, the factorial of number 7 is:
7! = 7*6*5*4*3*2*1 = 5040
and so on..
Now how do we actually find the factorial, we can do it using
- for loop (without recursion)
- with recursion
Factorial Logic
The logic behind getting the factorial of the number is as per the following.
- Get the number whose factorial is to be calculated.
- Get all the numbers starting from 1 up to that number.
- Get the multiplication of all the numbers.
Remember the factorial of 0! = 1.
How to Find Factorial in PHP?
We will learn further using different methods to calculate factorial of the given number using PHP code. Like using recursion, recursion with user input, without recursion, without recursion with user input.
About Recursion
Like other languages PHP also supports Recursion. What is recursion? When a function calls itself is termed as recursion. A recursive function calls itself within the function.
Example #1
In the following PHP program factorial of number 5 is calculated. This is a simple program using for loop. This for loop is iterated on the sequence of numbers starting from the number till 1 is reached.
Code:
<?php //example to calculate factorial of a number using simple for loop //declaring the input number as 5 $input=5; //declaring the fact variable as 1 $fact =1; //iterating using for loop for($i=$input; $i>=1;$i--) { // multiply each number up to 5 by its previous consecutive number $fact = $fact * $i; } // Print output of the program echo '<br>'. 'The factorial of the number 5 is '. $fact ?>
Output:
Example #2
In the below program, we have used a simple HTML form with an input text and a submit button. The input box is used to get user input. The submit button is used to submit the form data. Followed by that is the PHP code to iterate for loop wherein all the logic is present, which we learned in the previous program. So now the same logic is used with an input form.
If the user inputs a positive number through the input box in the form, the factorial of that number is calculated and the result is printed.
Code:
<title> Factorial Program</title>=1;$i--) { $fact = $fact * $i; } // Print output of the program echo '
'. 'The factorial of the number '.$input.' is ' . $fact; } ?>
Output :
Example #3
In the above two programs, we didn’t wrap the logic within a function. Here we have enclosed the main logic in a function and then called that function to calculate the factorial of the given number in PHP. Here the name of the function is Factorial_Function which finds the factorial of number 8.
Code:
//example to calculate factorial of a number using function //defining the factorial function function Factorial_Function($number) { $input = $number; $fact=1; //iterating using for loop for($i=$input; $i>=1;$i--) { $fact = $fact * $i; } return $fact; } //calling the factorial function $result = Factorial_Function(8); echo 'Factorial of the number 8 is '.$result; ?>
Output :
Example #4
We know that recursion is calling a function within a function. In the following example, we will use recursion and find the factorial of the number using PHP code. The main logic is wrapped in a function name Factorial_Function. Within this function if the input is greater that one, then the same function is called again and if the input is less than or equal to 1 then one is returned.
Using Recursion
Code:
<?php //Example to demonstrate factorial of a number using recursion //function containing logic of factorial function Factorial_Function($input) { // if the input is less than or equal to 1 then return if($input <=1) { return 1; } // else do a recursive call and continue to find the factorial return $input * Factorial_Function($input-1); //doing a recursive call } echo "Factorial of 9 is ".Factorial_Function(9); ?>
Output :
Example #5
We have now learned about recursion. In the following program, we have used recursion, the recursion is applied to the number which is the input from the user in this example.
Code:
<title> Factorial Program</title>'. 'The factorial of the number '.$input.' is ' . Factorial_Function($input); } ?>
Output:
Conclusion
This article has covered all the explanations and examples for finding the factorial of a number using PHP. Examples are explained using recursive and non-recursive ways, along with recursion explanation in context with the program. Hope this article was found informative to learn and grasp well.
The above is the detailed content of Factorial in PHP. For more information, please follow other related articles on the PHP Chinese website!

Effective methods to prevent session fixed attacks include: 1. Regenerate the session ID after the user logs in; 2. Use a secure session ID generation algorithm; 3. Implement the session timeout mechanism; 4. Encrypt session data using HTTPS. These measures can ensure that the application is indestructible when facing session fixed attacks.

Implementing session-free authentication can be achieved by using JSONWebTokens (JWT), a token-based authentication system where all necessary information is stored in the token without server-side session storage. 1) Use JWT to generate and verify tokens, 2) Ensure that HTTPS is used to prevent tokens from being intercepted, 3) Securely store tokens on the client side, 4) Verify tokens on the server side to prevent tampering, 5) Implement token revocation mechanisms, such as using short-term access tokens and long-term refresh tokens.

The security risks of PHP sessions mainly include session hijacking, session fixation, session prediction and session poisoning. 1. Session hijacking can be prevented by using HTTPS and protecting cookies. 2. Session fixation can be avoided by regenerating the session ID before the user logs in. 3. Session prediction needs to ensure the randomness and unpredictability of session IDs. 4. Session poisoning can be prevented by verifying and filtering session data.

To destroy a PHP session, you need to start the session first, then clear the data and destroy the session file. 1. Use session_start() to start the session. 2. Use session_unset() to clear the session data. 3. Finally, use session_destroy() to destroy the session file to ensure data security and resource release.

How to change the default session saving path of PHP? It can be achieved through the following steps: use session_save_path('/var/www/sessions');session_start(); in PHP scripts to set the session saving path. Set session.save_path="/var/www/sessions" in the php.ini file to change the session saving path globally. Use Memcached or Redis to store session data, such as ini_set('session.save_handler','memcached'); ini_set(

TomodifydatainaPHPsession,startthesessionwithsession_start(),thenuse$_SESSIONtoset,modify,orremovevariables.1)Startthesession.2)Setormodifysessionvariablesusing$_SESSION.3)Removevariableswithunset().4)Clearallvariableswithsession_unset().5)Destroythe

Arrays can be stored in PHP sessions. 1. Start the session and use session_start(). 2. Create an array and store it in $_SESSION. 3. Retrieve the array through $_SESSION. 4. Optimize session data to improve performance.

PHP session garbage collection is triggered through a probability mechanism to clean up expired session data. 1) Set the trigger probability and session life cycle in the configuration file; 2) You can use cron tasks to optimize high-load applications; 3) You need to balance the garbage collection frequency and performance to avoid data loss.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Chinese version
Chinese version, very easy to use

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
