PHP начинающим на примере калькулятора
Доброго всем времени суток! В этой статье для себя ничего не сможет найти полезного человек, который хоть когда-нибудь пробовал кодить на php, однако думаю новичкам в данной области может быть полезна для понятия основ.
Итак, наша задача — написать простейший калькулятор, который мог бы не только производить простейшие вычисления, но работал бы со всеми основными системами счисления, что нам самим может пригодиться в будущем. Код в данном случае получается небольшой, однако, в целях безопасности переменные лучше фильтровать. В своём примере я решил прибегнуть к регулярным выражениям, дабы была возможность для увеличения функциональности без внесения существенных изменений в код. Также следует отметить, что в случае с калькулятором обработчик мной было решено оставить в одном файле с разметкой, хотя в остальных случаях зачастую лучше отделять код от html-разметки. Собственно, нам понадобятся следующие html-формы:
— формы для ввода двух чисел с соответствующими атрибутами name=’a’ и name=’b’
— форма для выбора действия. Сразу стоит подумать, а нужно ли нам записывать её значение в переменную и фильтровать. Для себя я решил, что это будет лишним, однако если делать нечего, то можно и сделать.
— формы для задания кодировки. Вообще желательно проверить, соответствует ли число заданной кодировке, однако и это действие я решил опустить. Если пользователь знает, что это такое, вряд ли он получит сообщение об ошибке.
Однако если это Вася из 5а, и он хочет немножко поиграться со скриптом, то в любом случае ничего интересного он не увидит.
А так собственно будет выглядеть наш код:
<?php
//подавливаем вывод замечаний знаком @ перед регулярным выражением. Ображаем внимание на синтаксис регулярного выражения, если не умеемих составлять.
if (@preg_match(«|^[-0-9\.A-F]<1,12>$|i», $_POST[‘a’]))
<
if (preg_match(«|^[-0-9\.A-F]<1,12>$|i», $_POST[‘b’]))
<
//Если проверка на корректность ввода чисел пройдена, и левых данных нет, записываем их в переменные
//и сразу же конвертируем в десятичную систему счисления.
$a = base_convert($_POST[‘a’], $_POST[‘as’], 10);
$b = base_convert($_POST[‘b’], $_POST[‘bs’], 10);
if ($_POST[‘d’] == 1) $otvet = $a + $b;
elseif ($_POST[‘d’] == 2) $otvet = $a — $b;
elseif ($_POST[‘d’] == 3) $otvet = $a * $b;
elseif ($_POST[‘d’] == 4) $otvet = $a / $b;
elseif ($_POST[‘d’] == 5) $otvet = pow($a, $b);
elseif ($_POST[‘d’] == 6) $otvet = pow($a, 1/$b);
echo ‘Ответ: ‘ . base_convert($otvet, 10, $_POST[‘os’]) . ‘
‘;
>
>
//если первое число пустое (т.е. страница грузится первый раз), то выводим подсказку — скрытое
//сообщение об ошибке.
else echo «Подсказка:
Должны быть заполнены все поля
«;
?>
Посмотреть всё в связке можно в архиве со скриптом, скачать который можно здесь.
Пишем калькулятор на PHP
Всем привет! Мы с вами изучили 2 типа запросов: GET и POST. Они позволяют нам отправлять данные на сервер, благодаря чему мы можем с ним «общаться». Мы рассмотрели несколько простейших примеров. В этом уроке для закрепления материала мы с вами напишем свой калькулятор!
Прежде чем приступить к его созданию, давайте обговорим то, что он должен уметь. Пусть наш калькулятор будет принимать на вход 2 числа, и операцию, которую над этими числами нужно совершить (сложение, вычитание, умножение, деление). После этого он будет выводить нам получившееся выражение и его результат.
Итак, вот так будет выглядеть форма для ввода исходных данных:
А вот так будет выглядеть страница с результатом:
Давайте теперь спроектируем, где что будет лежать. Я предлагаю сделать такую архитектуру:
- index.php – здесь будет храниться форма, в которой мы будем заполнять исходные данные
- result.php – здесь будет храниться шаблон, который будет выводить результат вычислений
- calc.php – файл, в котором будет храниться непосредственно вся бизнес-логика нашего приложения.
Шаблоны калькулятора
Итак, приступим. Давайте начнём с формы. Она будет содержать в себе:
- 2 input’а, в которые мы будем записывать аргументы;
- select, который позволит нам выбрать одну из доступных операций;
- кнопку, для отправки формы.
Я приведу здесь пример формы, в которой будет только две возможные операции: сложение и вычитание.
Здесь вам всё должно быть знакомо. Если нет — повторите уроки с формами в курсе HTML.
Мы видим, что данная форма отправляет GET-запрос на адрес /result.php. Как мы уже решили, там будет находиться шаблон для вывода результата вычислений.
Вот пример кода, который получился у меня:
Как видим, здесь всё предельно просто — в переменную $result присваивается значение, возвращаемое из файла calc.php. Затем мы просто-напросто выводим результат из этой переменной.
Бизнес-логика калькулятора
Теперь самое интересное — написать бизнес-логику. Создаём файл calc.php и начинаем думать.
Первое, в чём нам стоит убедиться, есть ли вообще какие-либо данные в GET-запросе. Для этого проверяем массив $_GET на пустоту:
Сейчас, если перейти по адресу http://myproject.loc/result.php, мы увидим соответствующий результат:
Далее, нам стоит проверить, что из формы переданы x1, x2 и operation.
Можно теперь вернуться на форму с исходными данными и заполнить её какими-нибудь данными:
Если теперь нажать на кнопку отправки формы, мы увидим, что никаких ошибок в форме результата теперь не возникло:
Вместо этого мы теперь видим число 1. Это результат того, что в файле calc.php мы ничего не вернули, но при этом попытались это «ничего» с помощью функции require присвоить в переменную $result. Единица вернулась нам, потому что файл был успешно подключен, но ничего не вернул. Это значение по умолчанию.
Попробуем теперь убрать один из аргументов в форме:
Если мы отправим запрос сейчас, то увидим соответствующую ошибку:
Ну что, теперь мы знаем, что данные у нас проверяются, можно с ними и поработать.
Давайте для удобства сделаем 2 переменные $x1 и $x2 и положим в них значения из GET-запроса.
Давайте теперь составим выражение, которое мы будем вычислять. Его мы просто будем выводить для наглядности.
Теперь вернёмся на форму и снова введём корректные аргументы. После этого отправим её и увидим, что на странице с результатом появилось выражение, результат которого мы будем считать.
Дело осталось за малым — нужно только посчитать результат.
Для того, чтобы определить, какое действие нужно совершить с аргументами, воспользуемся конструкцией switch-case.
В результате получаем такое содержимое calc.php.
Давайте теперь снова отправим форму и посмотрим на результат.
Получили простейший калькулятор, который умеет складывать и вычитать. Разумеется, это лишь простейший прототип. Довести его до ума вы сможете сами, а в домашнем задании вас ждут наводящие вопросы, которые помогут найти ошибки, содержащиеся в приведенном коде.
Build a Calculator with PHP
PHP stands for Hypertext Preprocessor, you can say it has a recursive initialism It is a server-side programming language that makes it easy to build dynamic web applications.
If you already know how to build websites with HTML and CSS, that’s pretty damn awesome! But let’s say you need to make your website more dynamic, for example, create a login system, or a social network where users can post something. You’ll need a database management system to store your website’s user details and posts. In order to connect your website to the database, you will need a server-side programming language. There are many different options to pick from, but in this lesson, we will use PHP.
In this lesson, we will not be connecting to the database or performing user authentication. This will be a simple use of the PHP language to implement a calculator.
PHP does not run on the browser, but on the server, that’s why it’s called a ‘server-side’ programming language. In other to use PHP, we will need to set up a server to host our files. Once the server runs our PHP codes, it sends the output in form of HTML, we can then style it our desired styling so our website looks nice. Don’t worry, I’ll link the code to everything used in this lesson so you can check and compare with yours. Also, feel free to say hi to me on Twitter. Ready to build your calculator? let’s go!
Setting up our local environment
To run PHP, you need a server. You can turn our computer into a server to run our PHP code. To accomplish this, you will install a web server solution stack on your computer. There are a number of available option, I’ll list my suggestions below:
Once you have the software installed, It should look like this:
Windows / Linux:
Mac:
Next, you’ll need to navigate to the htdocs directory. You can find it on:
Windows: C:\xampp\htdocs
Linux: /opt/lampp/htdocs/
Mac: /Applications/MAMP/htdocs
This is where we will write our PHP code.
If you are able to make it this far congrats! Now let’s write some code.
Writing the HTML
Let’s write some simple HTML code that displays a basic form with two text inputs, one select field with five options, and one button on the page.
Exit fullscreen mode
Your web page would look like this.
You’re doing awesome, next. we will style our page, so it looks clean to some extent. Feel free to skip this section if don’t care about styling.
Styling with CSS
You can style your calculator however you want, I’ll just give mine some basic styling. See code below.
Exit fullscreen mode
Next, let’s connect our CSS to the HTML by including the link tag. See the example below:
Exit fullscreen mode
Your calculator would look similar to this if you used my style. If you styled yours differently, I’d like to see it simply tag me on Twitter and I’ll check it out.
Now, Let’s enable the calculator to perform some basic calculations.
Giving it Functionality
PHP makes it easy to mix and match code within our HTML code using these tags <?php ?> . Anything written within those tags is regarded as valid PHP code. Be sure to save your file with the .php file extension.
We want whatever value the user inputted to get displayed after the = button. So within our form, just after the button element, we will write some PHP code to calculate user inputs as requested.
To get user inputs, we will need to give each element inside the form a name as shown below:
Exit fullscreen mode
Then, we’ll give the form a method that specifies what request type we will use in sending the form. For this, we have two options, POST or GET . We will use the latter in our code. Then we need to set an action attribute that tells the browser which file will process the form it’s sending, in this case, it’s going to be the same file. My file is named index.php . If you named your file differently, be sure to check that it matches with the value provided in the action attribute. See the example below.
Exit fullscreen mode
Next, we will target each element inside the form and write some logic on them. I’ll show the PHP code in its entirety below, then explain what each line means afterward.
Exit fullscreen mode
Explaining the above PHP code:
- <?php Starts the PHP tag so anything we write within it is regarded as valid PHP code.
- if(isset($_GET[‘equals’])) < Checks if the button, which has the name 'equals' has been clicked
- $operandOne = $_GET[‘one’]; This statement declares a variable and initializes its value to whatever got passed in by the user into the first input field with the name ‘one’.
- $operandTwo = $_GET[‘two’]; Creates a variable and initializes its values to what got passed into the second input field with name ‘two’.
- switch ($_GET[‘operator’]) < A switch statement on what option got selected by the user on the select element.
- case ‘None’: This line says if the user selected None, perform the following action.
- echo ‘Select and operator’; This string gets printed on the page
- break; Ends the switch statement
- case ‘Add’: If the user selects Add, perform the following action.
- echo $operandOne + $operandTwo; Add both values and print the sum on the page
- break; Ends the switch statement
- case ‘Subtract’: If the user selects Subtract, perform the following action.
- echo $operandOne — $operandTwo; Subtract the second value from the first and print the result on the page
- break; Ends the switch statement
- case ‘Multiply’: If the user selects Multiply, perform the following action.
- echo $operandOne * $operandTwo; Multiply both values and print the result on the page
- break; Ends the switch statement
- case ‘Divide’: If the user selects Divide, perform the following action.
- echo $operandOne / $operandTwo; Divide the second value from the first and print the result on the page
- break; Ends the switch statement
- default: If none of the above happens, do the following
- echo ‘Nothing was supplied’; Prints the string
- break; End the program
- > Ends Switch block
- >else < Else statement
- echo ‘0’; Prints string to the screen until the if statement evaluates to true
- > Ends the Else statement
- ?> Closes the PHP tag
Seeing it work
Thanks for reading this far, I hope you found this article helpful. If you got stuck at any point, please see the complete code on Github
Simple Calculator Using PHP
This is a simple calculator that can perform the simple arithmetic tasks (+, -, * and /).
Write a simple calculator program in PHP using if-else statement
HTML Code for Simple Calculator
PHP Code for Simple Calculator
We are using Else-If statement for performing the functions.
Output:
Download Code – Simplecalculator
Write a simple calculator program in PHP using the switch statement
Operations on calculator
Following operations will perform on the given calculator;
Calculator in PHP using function
PHP calculator using class
Write a PHP program to make a calculator class that will accept two values as a parameter, then perform the operation of addition, multiplication, subtraction, and division.
More Examples of Calculators
Topic Covered:
Calculator in PHP using the button, PHP calculator code, how to make a calculator in PHP, PHP code for a calculator with buttons, PHP calculator form, calculator in PHP and HTML, PHP calculator script, create a calculator in PHP, PHP calculator source code download.