PHP Programming is all about logic. And controlling the flow of logic is an essential part of any program. Here, the flow of logic means the decision-making process where you pick which steps should be taken under which conditions.
In this article, we’ll go through examples of logical programs in php.
Table of Contents
Check whether a year is a Leap Year or not
Leap year is a year which occurs once every four years.
<?php
$year = 2019;
if($year % 4 == 0) {
echo "This is a leap year";
}
else {
echo "This is a not leap year";
}
?>
If the given year is a leap year, then it should be completely divisible by 4. So, by applying this logic, we check that if the remainder is equal to 0 after dividing it with 4, then it must be a leap year; otherwise, it is not a leap year.
Output:
Even or Odd number
Even numbers those which are divisible by 2 like 2, 4, 6, 8 and those which are not divisible by 2 are odd numbers like 1, 3, 5, 7.
<?php
$check1 = 14255;
$check2 = 35934;
if($check1%2 == 0) {
echo "$check1 is Even number <br/>";
} else {
echo "$check1 is Odd number <br/>";
}
if($check2%2 == 0) {
echo "$check2 is Even number";
} else {
echo "$check2 is Odd number";
}
?>
- Initialize two variables $check1 and $check2.
- Divide them by 2.
- If the remainder is 0, then print that it is an even number else print odd number.
output
Sum of numbers
To find the sum of numbers, simply add all the digits.
<?php
$num = 12345;
$rem = 0;
$sum = 0;
for($i = 0; $i <= strlen($num); $i++) {
$rem = $num % 10;
$sum = $sum + $rem;
$num = $num/10;
}
echo "Sum of digits is $sum";
?>
We initialize the variable $num with the value whose digits we are going to count. Then initialize two other variables $rem and $sum to store the remainder and the sum respectively. To understand the flow of the for() loop and how it is working, let us take an example of number 234.
| $rem = $num %10 | $sum = $sum + $rem | $num = $num/10 |
1^{st} iteration | 234 % 10 $rem = 4 | 0 + 4 $sum = 4 | 234/10 $num = 23.4 |
2^{nd} iteration | 23.4 % 10 $rem = 3 | 4 + 3 $sum = 7 | 23/10 $num = 2.3 |
3^{rd} iteration | 2.3 % 10 $rem = 2 | 7 + 2 $sum = 9 | 2/10 $num = 0.2 |
Output
Table of a given number
We can easily print a table of any number with the help of loop.
<?php
$num = 5;
for($i = 1; $i <=10; $i++) {
echo "$num * $i = " . $num*$i;
echo "<br/>";
}
?>
- Define $num
- Run for loop from 1 to 10 to print the table.
- Multiply the $num with the loop output.
output
Factorial
Factorial is the product of the integer and all the integers below it till 1. For example, 5! = 5 * 4 * 3 *2 * 1 = 120
<?php
$num = 5;
$factorial = 1;
if($num != 0) {
for($i = $num; $i>=1; $i--) {
$factorial = $factorial * $i;
}
}
else {
$factorial = 1;
}
echo "Factorial of $num is $factorial";
?>
Output:
Fibonacci Series
<?php
$n = 12;
$a = -1;
$b = 1;
for($i = 1; $i <= $n; $i++) {
$c = $a + $b;
echo $c." ";
$a = $b;
$b = $c;
}
?>
Initializes $n with the 12 which means we’re going to display 12 elements of a Fibonacci series. Start the for loop, in this we add the first two numbers to get the third one in $c, and we’ll get 0 as our first number. Display it and update our two variable $a, and $b. In our next iteration, we’ll get 1 and so on.
output:
Prime numbers
A prime number is a number which is only divisible by 1 and that number itself. It means that the prime number can not be divided by any other number.
<?php
$no = 2;
$total_display = 0;
while ($total_display < 10 ) {
$divisible_count = 0;
for($i = 1; $i <=$no; $i++) {
if($no % $i == 0) {
$divisible_count += 1;
}
}
if($divisible_count < 3) {
echo $no . " ";
$total_display += 1;
}
$no += 1;
}
?>
We first store the current number to a variable $no. And then we’ll find the reminder for each value with itself and its below integers. And we’ll increment a counter called $divisible_count if a reminder equals to 0.
After all the divisions we check the value of $divisible_count if it is less than 3, it means that a number is a prime number because it is only wholly divisible by 1 and itself.
Output:
Palindrome Numbers
A palindrome is a number which remains the same when its integers are reversed. For example, 78987.
<?php
function reverse($number) {
$num = $number;
$rev = 0;
while ($num > 1) {
$rem = $num % 10;
$rev = ($rev * 10) + $rem;
$num /= 10;
}
return $rev;
}
$check = 12321;
$reverse = reverse($check);
if($check == $reverse) {
echo "$check is a palindrome";
}
else {
echo "$check is not a palindrome";
}
?>
First, we take a number in a variable $check then, pass this number to a function which returns it in reverse order, finally compare the two figures, if they are same, means the number is a palindrome.
output:
Anagram
Anagrams are those words which share the same alphabets as each other with the difference of arrangement. For example, “listen” and “silent” are both anagrams.
<?php
$str1 = "earth";
$str2 = "heart";
$k = 0;
if(strlen($str1) == strlen($str2)) {
for($i = 0; $i <strlen($str1); $i++) {
for($j = 0; $j <strlen($str2); $j++) {
if($str1[$i] == $str2[$j]) {
$k++;
break;
}
}
}
if ($k == strlen($str2)) {
echo "$str1 and $str2 are anagram";
}
else {
echo "$str1 and $str2 are not anagram";
}
}
else {
echo "$str1 and $str2 are not anagram";
}
?>
- Take the two inputs of words in a string array of a variable named $str1 and $str2
- Then compare the alphabets of these words line by line by nested for loop.
- If the first character of the first word matches with any letter in the second word, then a variable $k will be increment then the outer for loop increment by 1 and the second letter of the first word again checks each letter in the second word and so on.
- If all the characters in the first-word match with the second word, then it means the given strings are anagram.
- At last, to check the result, the value of $k will be compared to the length of the given words if both are same then the strings are anagram otherwise not.
output:
Patterns
(A)
If you observe that pattern, there are 5 rows and 5 columns. Row 1 has 1 column; row 2 has 2 columns and so on. It means that rows and columns are the same.
<?php
for($i = 0; $i <5; $i++) {
for($j = 0; $j <= $i; $j++) {
echo "* ";
}
echo "<br/>";
}
?>
Here, the outer for loop indicates the row and the inner for loop is for the column.
Output:
(b)
This is the same pattern as the above one, but except the stars there are numbers. And if you observe it they are even numbers.
<?php
$no = 2;
for($i = 0; $i <5; $i++) {
for($j = 0; $j <= $i; $j++) {
echo "$no ";
$no += 2;
}
echo "<br/>";
}
?>
The outer and inner loop is working same as the above but except printing *we print 2 and then increment it by 2 so that the next number can be generated.
output:
(C)
<?php
for($i = 5; $i > 0; $i--) {
for($j = $i; $j > 0; $j--) {
echo "* ";
}
echo "<br/>";
}
?>
According to the pattern, there are 5 columns on 1^{st} row, 4 columns on 2^{nd} row and so on. Means starting from 5 columns and then decreasing it at each row.
output:
Conclusion
PHP language is a popular server-side scripting language. If you are willing to learn PHP, then it is essential to grasp the concepts of how you can make different logics to solve a problem.
In this article, we’ve seen various examples with source code to understand how to resolve the issue. There could be different PHP code for every problem because every person thinks differently. If you want to try any problem with your logic and you should try. This is how you learn. Good luck!