How to create a calculator in PHP

In this tutorial, we will learn How to create a calculator in PHP. In calculator, we will perform simple operations (add, subtract, multiply, divide) with two numbers.

The HTML Code

<div class="signup-form">
    <form  method="post">
		<h2>Calculator</h2>
		<p>Developed using PHP</p>
		<hr>
 <div class="form-group">
 
<div class="row">
ass="col"><input type="text" class="form-control" name="first_number" placeholder="First Number" required="required" value="<?php echo isset($fn)?$fn:''; ?>" pattern="[0-9]+" title="only numbers"></div>
 
<div class="col"><input type="text" class="form-control" name="second_number" placeholder="Second Number" required="required" value="<?php echo isset($sn)?$sn:''; ?>" pattern="[0-9]+" title="only numbers"></div>
 
</div>        	
</div>
 
<div class="form-group">
<?php if(isset($result) && is_numeric($result)){?>
<h4 style="color:blue; font-weight:bold;"> Result: <?php echo $result; ?></h4>
<?php } if(isset($error)){?>
<h5 style="color:red; font-weight:bold;">Error: <?php echo $error; ?></h5>
<?php } ?>
</div>
 
<div class="form-group">
<input class="btn btn-primary" type="submit" name="calculate" value="+">
<input class="btn btn-primary" type="submit" name="calculate" value="-">
</div>
<div class="form-group">
<input class="btn btn-primary" type="submit" name="calculate" value="x">
<input class="btn btn-primary" type="submit" name="calculate" value="/">
        </div>
    </form>
</div>

PHP Code to perform calculator operations

<?php
if (isset($_POST['Calculate'])) {
	$fn=$_POST['first_number'];
	$sn=$_POST['second_number'];
	$operation=$_POST['calculate'];

	if($operation=="/" && ($fn == 0 || $sn == 0)){
		$error = "Never divide any number by zero";
	}
	else{
		if($operation=="+")
			$result=$fn+$sn;
		else if($operation=="-")
			$result=$fn -$sn;
		else if($operation=="x")
			$result=$fn*$sn;
		else if($operation=="/")
			$result=$fn/$sn;
	}
} ?>

Here is the full code that we have written for this calculator

<?php
if (isset($_POST['Calculate'])) {
	$fn=$_POST['first_number'];
	$sn=$_POST['second_number'];
	$operation=$_POST['calculate'];
 
	if($operation=="/" && ($fn == 0 || $sn == 0)){
		$error = "Never divide any number by zero";
	}
	else{
		if($operation=="+")
			$result=$fn+$sn;
		else if($operation=="-")
			$result=$fn -$sn;
		else if($operation=="x")
			$result=$fn*$sn;
		else if($operation=="/")
			$result=$fn/$sn;
	}
} ?>
 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,700">
<title>Calculator in PHP</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script> 
<style>
body {
	color: #fff;
	background: #3598dc;
	font-family: 'Roboto', sans-serif;
}
.form-control {
	height: 41px;
	background: #f2f2f2;
	box-shadow: none !important;
	border: none;
}
.form-control:focus {
	background: #e2e2e2;
}
.form-control, .btn {        
	border-radius: 3px;
}
.signup-form {
	width: 600px;
	margin: 30px auto;
}
.signup-form form {
	color: #999;
	border-radius: 3px;
	margin-bottom: 15px;
	background: #fff;
	box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
	padding: 30px;
}
.signup-form h2  {
	color: #333;
	font-weight: bold;
	margin-top: 0;
}
.signup-form hr  {
	margin: 0 -30px 20px;
}    
.signup-form .form-group {
	margin-bottom: 20px;
}
.signup-form input[type="checkbox"] {
	margin-top: 3px;
}
.signup-form .row div:first-child {
	padding-right: 10px;
}
.signup-form .row div:last-child {
	padding-left: 10px;
}
.signup-form .btn {        
	font-size: 16px;
	font-weight: bold;
	background: #3598dc;
	border: none;
	min-width: 140px;
}
.signup-form .btn:hover, .signup-form .btn:focus {
	background: #2389cd !important;
	outline: none;
}
.signup-form a {
	color: #fff;
	text-decoration: underline;
}
.signup-form a:hover {
	text-decoration: none;
}
.signup-form form a {
	color: #3598dc;
	text-decoration: none;
}	
.signup-form form a:hover {
	text-decoration: underline;
}
.signup-form .hint-text  {
	padding-bottom: 15px;
	text-align: center;
}
</style>
</head>
<body>
<div class="signup-form">
    <form  method="post">
		<h2>Calculator</h2>
		<p>Developed using PHP</p>
		<hr>
        <div class="form-group">
 
<div class="row">
<div class="col"><input type="text" class="form-control" name="first_number" placeholder="First Number" required="required" value="<?php echo isset($fn)?$fn:''; ?>" pattern="[0-9]+" title="only numbers"></div>
				
<div class="col"><input type="text" class="form-control" name="second_number" placeholder="Second Number" required="required" value="<?php echo isset($sn)?$sn:''; ?>" pattern="[0-9]+" title="only numbers"></div>
</div>        	
</div>
 
<div class="form-group">
 
<?php if(isset($result) && is_numeric($result)){?>
 <h4 style="color:blue; font-weight:bold;">Result: <?php echo $result; ?></h4>
 <?php } if(isset($error)){?>
 <h5 style="color:red; font-weight:bold;"> 	Error: <?php echo $error; ?></h5>
 <?php } ?>
 </div>
		
<div class="form-group">
 <input class="btn btn-primary" type="submit" name="calculate" value="+">
<input class="btn btn-primary" type="submit" name="calculate" value="-">
</div>
<div class="form-group">
<input class="btn btn-primary" type="submit" name="calculate" value="x">
<input class="btn btn-primary" type="submit" name="calculate" value="/">
        </div>
    </form>
</div>
</body>
</html>