PHP - Matematičke operacije


Izvođenje matematičkih operacija

PHP ima nekoliko ugrađenih funkcija koje vam pomažu da izvodite bilo šta, od jednostavnih sabiranja ili oduzimanja do naprednih izračunavanja. Već ste vidjeli kako izvoditi osnovne matematičke operacije u lekciji PHP operatora. Progledajmo još jedan primjer:

<?php
echo 7 + 3; // Ispisuje: 10
echo 7 - 2; // Ispisuje: 5
echo 7 * 2; // Ispisuje: 14
echo 7 / 2; // Ispisuje: 3.5
echo 7 % 2; // Ispisuje: 1
?>

Svaka matematička operacija ima određeni nivo prioriteta. Uopšteno se množenje i dijeljenje izvode prije sabiranja i oduzimanja. Međutim, zagrade mogu promijeniti ovaj prioritet. Izrazi zatvoreni u zagradama uvijek se prvo procjenjuju, bez obzira na nivo prioriteta operacije, kao što je prikazano u sljedećem primjeru:

<?php
echo 5 + 4 * 10;         // Ispisuje: 45
echo (5 + 4) * 10;       // Ispisuje: 90
echo 5 + 4 * 10 / 2;     // Ispisuje: 25
echo 8 * 10 / 4 - 2;     // Ispisuje: 18
echo 8 * 10 / (4 - 2);   // Ispisuje: 40
echo 8 + 10 / 4 - 2;     // Ispisuje: 8.5
echo (8 + 10) / (4 - 2); // Ispisuje: 9
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Promijena prednosti operatora pomoću zagrada</title>
</head>
<body>

<?php
echo 5 + 4 * 10;         // Ispisuje: 45
echo (5 + 4) * 10;       // Ispisuje: 90
echo 5 + 4 * 10 / 2;     // Ispisuje: 25
echo 8 * 10 / 4 - 2;     // Ispisuje: 18
echo 8 * 10 / (4 - 2);   // Ispisuje: 40
echo 8 + 10 / 4 - 2;     // Ispisuje: 8.5
echo (8 + 10) / (4 - 2); // Ispisuje: 9
?>

</body>
</html>

U narednom dijelu ćemo pogledati neke ugrađene PHP funkcije koje se najčešće koriste u izvođenju matematičkih operacija.



Traženje apsolutne vrijednosti broja

Apsolutna vrijednost cijelog broja može se naći pomoću funkcije abs(), kao što je prikazano u sljedećem primjeru:

<?php
echo abs(5);    // Ispisuje: 5 (integer)
echo abs(-5);   // Ispisuje: 5 (integer)
echo abs(4.2);  // Ispisuje: 4.2 (double/float)
echo abs(-4.2); // Ispisuje: 4.2 (double/float)
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Dobijanje apsolutne vrijednosti broja</title>
</head>
<body>

<?php
echo abs(5);    // Ispisuje: 5 (integer)
echo abs(-5);   // Ispisuje: 5 (integer)
echo abs(4.2);  // Ispisuje: 4.2 (double/float)
echo abs(-4.2); // Ispisuje: 4.2 (double/float)
?>

</body>
</html>

Kao što možete vidjeti navedeni broj je negativan i vraćena vrijednost je pozitivna. Ali, ako je broj pozitivan, ova funkcija jednostavno vraća broj.



Zaokruživanje decimalne vrijednosti na više ili niže

Funkcija ceil() može se koristiti za zaokruživanje decimalne vrijednosti do sljedeće najveće cjelobrojne vrijednosti, dok se funkcija floor() može koristiti za zaokruživanje decimalne vrijednosti prema sljedećoj najnižoj cjelobrojnoj vrijednosti, kao što je prikazano u sljedećem primjeru:

<?php
// Zaokruži frakciju više
echo ceil(4.2);    // Ispisuje: 5
echo ceil(9.99);   // Ispisuje: 10
echo ceil(-5.18);  // Ispisuje: -5
 
// Zaokruži frakciju niže
echo floor(4.2);    // Ispisuje: 4
echo floor(9.99);   // Ispisuje: 9
echo floor(-5.18);  // Ispisuje: -6
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Zaokruživanje decimalne vrijednosti na više ili niže</title>
</head>
<body>

<?php
// Zaokruži frakciju više
echo ceil(4.2);    // Ispisuje: 5
echo ceil(9.99);   // Ispisuje: 10
echo ceil(-5.18);  // Ispisuje: -5
 
// Zaokruži frakciju niže
echo floor(4.2);    // Ispisuje: 4
echo floor(9.99);   // Ispisuje: 9
echo floor(-5.18);  // Ispisuje: -6
?>

</body>
</html>


Traženje kvadratnog korijena broja

Možete koristiti funkciju sqrt() da biste pronašli kvadratni korijen pozitivnog broja. Ova funkcija vraća posebnu vrijednost NAN za negativne brojeve. Evo primjera:

<?php
echo sqrt(9);   // Ispisuje: 3
echo sqrt(25);  // Ispisuje: 5
echo sqrt(10);  // Ispisuje: 3.1622776601684
echo sqrt(-16); // Ispisuje: NAN
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Traženje kvadratnog korijena broja</title>
</head>
<body>

<?php
echo sqrt(9);   // Ispisuje: 3
echo sqrt(25);  // Ispisuje: 5
echo sqrt(10);  // Ispisuje: 3.1622776601684
echo sqrt(-16); // Ispisuje: NAN
?>

</body>
</html>


Generisanje slučajnog broja

Funkcija rand() može se koristiti za generisanje slučajnih brojeva. Opcionalno možete odrediti raspon prenošenjem min, max argumenata, kao što je prikazano u sljedećem primjeru:

<?php
// Generisanje nekih slučanih brojeva
echo rand() . "<br>";
echo rand() . "<br>";
 
// Generisanje nekih slučanih brojeva između 1 i 10 (inclusive)
echo rand(1, 10) . "<br>";
echo rand(1, 10) . "<br>";
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Generisanje slučajnog broja</title>
</head>
<body>

<?php
// Generisanje nekih slučanih brojeva
echo rand() . "<br>";
echo rand() . "<br>";
 
// Generisanje nekih slučanih brojeva između 1 i 10 (inclusive)
echo rand(1, 10) . "<br>";
echo rand(1, 10) . "<br>";
?>

</body>
</html>

Ako se funkcija rand() poziva bez neobaveznih min, max argumenata, vraća pseudo-slučajnim brojevima između 0 i getrandmax(). Funkcija getrandmax() pokazuje najveću moguću slučajnu vrijednost koja je samo 32767 na Windows platformi. Dakle, ako vam je potreban raspon veći od 32767, možete jednostavno odrediti argumente min i max.



Pretvaranje decimalnih brojeve u binarne i obrnuto

Funkcija decbin() koristi se za pretvaranje decimalnog broja u binarni, dok funkcija bindec() pretvara broj iz binarnog u decimalni. Pogeldajmo sljedeći primjer kako biste shvatili kako se pretvaraju brojevi:

<?php
// Konvertovanje decimalnih u binarne
echo decbin(2);    // Ispisuje: 10  
echo decbin(12);   // Ispisuje: 1100  
echo decbin(100);  // Ispisuje: 1100100
 
// Konvertovanje binarnih u decimalne
echo bindec(10);       // Ispisuje: 2 
echo bindec(1100);     // Ispisuje: 12  
echo bindec(1100100);  // Ispisuje: 100
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Pretvaranje decimalnih brojeve u binarne i obrnuto</title>
</head>
<body>

<?php
// Konvertovanje decimalnih u binarne
echo decbin(2);    // Ispisuje: 10  
echo decbin(12);   // Ispisuje: 1100  
echo decbin(100);  // Ispisuje: 1100100
 
// Konvertovanje binarnih u decimalne
echo bindec(10);       // Ispisuje: 2 
echo bindec(1100);     // Ispisuje: 12  
echo bindec(1100100);  // Ispisuje: 100
?>

</body>
</html>


Pretvaranje decimalnih brojeva u heksadecimalne i obrnuto

Funkcija dechex() koristi se za pretvaranje decimalnog broja u heksadecimalni broj. Dok se funkcija hexdec() koristi za pretvaranje heksadecimalnog broj u decimalni broj. Pogeldajmo sljedeći primjer kako biste shvatili kako se pretvaraju brojevi:

<?php
// Kovertovanje decimalnih u heksadecimalne
echo dechex(255);  // Ispisuje: ff
echo dechex(196);  // Ispisuje: c4
echo dechex(0);    // Ispisuje: 0
 
// Konvertovanje heksadecimalni u decimalne
echo hexdec('ff');  // Ispisuje: 255
echo hexdec('c4');  // Ispisuje: 196
echo hexdec(0);     // Ispisuje: 0
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Pretvaranje decimalnih brojeva u heksadecimalne i obrnuto</title>
</head>
<body>

<?php
// Kovertovanje decimalnih u heksadecimalne
echo dechex(255);  // Ispisuje: ff
echo dechex(196);  // Ispisuje: c4
echo dechex(0);    // Ispisuje: 0
 
// Konvertovanje heksadecimalni u decimalne
echo hexdec('ff');  // Ispisuje: 255
echo hexdec('c4');  // Ispisuje: 196
echo hexdec(0);     // Ispisuje: 0
?>

</body>
</html>


Pretvaranje decimalnih brojeve u oktalne i obrnuto

Funkcija decoct() koristi se za pretvaranje decimalnog broja u oktalni. Dok se funkcija octdec() koristi za pretvaranje oktalnog broja u decimalni. Pogeldajmo sljedeći primjer kako biste shvatili kako se pretvaraju brojevi:

<?php
// Konvertovanje decimalnog u oktalni
echo decoct(12);   // Ispisuje: 14
echo decoct(256);  // Ispisuje: 400
echo decoct(77);   // Ispisuje: 115
 
// Konvertovanje oktalnog u decimalni
echo octdec('14');   // Ispisuje: 12
echo octdec('400');  // Ispisuje: 256
echo octdec('115');  // Ispisuje: 77
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Pretvaranje decimalnih brojeve u oktalne i obrnuto</title>
</head>
<body>

<?php
// Konvertovanje decimalnog u oktalni
echo decoct(12);   // Ispisuje: 14
echo decoct(256);  // Ispisuje: 400
echo decoct(77);   // Ispisuje: 115
 
// Konvertovanje oktalnog u decimalni
echo octdec('14');   // Ispisuje: 12
echo octdec('400');  // Ispisuje: 256
echo octdec('115');  // Ispisuje: 77
?>

</body>
</html>


Pretvaranje broja iz jednog osnovnog sistema u drugi

Funkcija base_convert() može se koristiti za pretvaranje broja iz jednog osnovnog sistema u drugi. Na primjer, možete pretvoriti decimalni (osnovni 10) u binarni (osnovni 2), heksadecimalni (bazna 16), oktalni (baza 8), oktalni u heksadecimalni, heksadecimalni u decimalni i tako dalje. Ova funkcija prihvata tri parametra: broj za pretvaranje, bazu u kojoj se trenutno nalazi i bazu u koju se pretvara. Osnovna sintaksa je sljedeća:

base_convert(number, frombase, tobase);

Ovdje broj može biti cijeli broj ili niz koji predstavlja cijeli broj. I jedna i druga baza moraju biti između 2 i 36. Brojevi u bazi većoj od 10 biće predstavljeni slovima a-z, gdje a znači 10, b znači 11 i z znači 35. Evo jednostavnog primjera za prikaz kako ova funkcija radi:

<?php
// Konvertovanje decimalnog u binarni
echo base_convert('12', 10, 2);  // Ispisuje: 1100
// Konvertovanje binarnog u decimalni
echo base_convert('1100', 2, 10);  // Ispisuje: 12
 
// Kovertovanje decimalnog u heksadecimalni
echo base_convert('10889592', 10, 16);  // Ispisuje: a62978
// Konvertovanje heksadecimalnog u decimalni
echo base_convert('a62978', 16, 10);  // Ispisuje: 10889592
 
// Kovertovanje decimalnog u oktalni 
echo base_convert('82', 10, 8);  // Ispisuje: 122
// Konvertovanje oktalnog u decimalni
echo base_convert('122', 8, 10);  // Ispisuje: 82
 
// Konvertovanje heksadecimalnog u oktalni
echo base_convert('c2c6a8', 16, 8);  // Ispisuje: 60543250
// konvertovanje oktalnog u heksadecimalni
echo base_convert('60543250', 8, 16);  // Ispisuje: c2c6a8
 
// Konvertovanje oktalnog u binarni
echo base_convert('42', 8, 2);  // Ispisuje: 100010
// Konvertovanje binarnog u oktalni
echo base_convert('100010', 2, 8);  // Ispisuje: 42
 
// Konvertovanje heksadecimalnog u binarni
echo base_convert('abc', 16, 2);  // Ispisuje: 101010111100
// Konvertovanje binarnog u heksadecimalni
echo base_convert('101010111100', 2, 16);  // Ispisuje: abc
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Pretvaranje broja iz jednog osnovnog sistema u drugi</title>
</head>
<body>

<?php
// Konvertovanje decimalnog u binarni
echo base_convert('12', 10, 2);  // Ispisuje: 1100
// Konvertovanje binarnog u decimalni
echo base_convert('1100', 2, 10);  // Ispisuje: 12
 
// Kovertovanje decimalnog u heksadecimalni
echo base_convert('10889592', 10, 16);  // Ispisuje: a62978
// Konvertovanje heksadecimalnog u decimalni
echo base_convert('a62978', 16, 10);  // Ispisuje: 10889592
 
// Kovertovanje decimalnog u oktalni 
echo base_convert('82', 10, 8);  // Ispisuje: 122
// Konvertovanje oktalnog u decimalni
echo base_convert('122', 8, 10);  // Ispisuje: 82
 
// Konvertovanje heksadecimalnog u oktalni
echo base_convert('c2c6a8', 16, 8);  // Ispisuje: 60543250
// konvertovanje oktalnog u heksadecimalni
echo base_convert('60543250', 8, 16);  // Ispisuje: c2c6a8
 
// Konvertovanje oktalnog u binarni
echo base_convert('42', 8, 2);  // Ispisuje: 100010
// Konvertovanje binarnog u oktalni
echo base_convert('100010', 2, 8);  // Ispisuje: 42
 
// Konvertovanje heksadecimalnog u binarni
echo base_convert('abc', 16, 2);  // Ispisuje: 101010111100
// Konvertovanje binarnog u heksadecimalni
echo base_convert('101010111100', 2, 16);  // Ispisuje: abc
?>

</body>
</html>