6. Matematické výpočty

Čísla v PHP

PHP podporuje čísla ve dvojí podobě – celá a reálná čísla.

Celá čísla

Celá čísla jsou jakákoliv čísla, která nemají desetinnou čárku. Příkladem celých čísel může být např. -7, 9, 145, 2 458, -128 523 atd. Celá jsou ovšem v PHP pouze v rozsahu od -2 147 483 648 do +2 147 483 647. Jakmile se bude jednat o číslo mimo tento rozsah, bude se automaticky jednat o číslo reálné.

Zápis celého čísla – 3 (jakmile nenapíšete desetinnou tečku v zápisu čísla, jedná se vždy o číslo celé)

POZOR: pokud zapíšete číslo takto – 0x nebo 0X bude to považováno za číslo zapsané v šestnáctkové soustavě. Pokud zapíšete číslo takto – 017, bude to považováno za číslo zapsané v osmičkové soustavě.

Reálná čísla

Reálná čísla jsou čísla, která mohou, ale nemusí obsahovat desetinnou čárku. Na rozdíl od matematiky mají reálná čísla v PHP omezenou přesnost (tedy při výpočtech se zaokrouhlují). V manuálu pro PHP se uvádí, že mají přesnost na 16 číslic. Příkladem pro reálná čísla je např. 9,15 nebo 159,1235 atd.

Zápis reálného čísla – 3.0 (pro desetinnou čárku se v zápisu PHP používá tečka)

Zápis reálného čísla ve vědecké notaci – číslo, které má za sebou písmeno malé „e“ nebo velké „E“, za kterým pokračuje číslo zvané exponent.

<?php
echo 12e3;
//vypíše se 12000
?>

Proč se vůbec tedy používají celá i reálná čísla, když by vlastně stačila čísla reálná?

  • Výpočty s celými čísly bývají o něco rychlejší (tato vlastnost se projeví jen u velmi složitých výpočtů)
  • Celá čísla jsou zcela přesná, nezaokrouhlují se, u reálných dochází k zaokrouhlování, tedy nepřesnostem

Matematické výpočty s čísly

PHP umí jak základní, tak složitější matematické operace. Pro začátek jeden z příkladů:

<?php
echo 12 + 6
//vypíše 18
?>

Jak už bylo zmíněno, mezi základní datové typy patří také čísla. PHP podporuje dva základní číselné typy a to celá a reálná čísla. Základní vlastností je to, že se s nimi dá počítat. Nabídka matematických schopností PHP jazyka nevybočuje z toho, co nabízí většina programovacích jazyků. Zápis matematických operací vychází z jazyka C.

V PHP můžete běžně sčítat, odčítat, násobit a dělit. Základní operace vypadají následovně:

+ sčítání
- odčítání
* násobení
/ dělení
% zbytek po dělení

Příklad základních matematických operací:

<?php
echo 10 * 2 + 4;
// Vypíše: 24
?>

Dělení čísel

Dělení čísel má svá přesná pravidla. Pokud dělíme dvě čísla a výsledkem bude jiné číslo než celé, bude výsledným datovým typem tohoto čísla reálné číslo, tedy číslo s desetinnou čárkou:

<?php
$a = 10 / 5;
var_dump($a);
echo "</br>";
// Výsledkem je celé číslo, vypíše int(2)
$b = 10 / 3;
var_dump($b);
// Výsledkem je reálné číslo, vypíše float(3.3333333333333)
?>

Pozn.: int a float jsou výrazy pro vyjádření datového typu (int = celé číslo, float = reálné číslo). Více o označování datových typů později.

Operace inkrementace a dekrementace

Jedná se o speciální matematické operace, které zvětšují, respektive zmenšují hodnotu proměnné 
o jednu. Princip je v podstatě jednoduchý - inkrementace (++) způsobí zvětšení hodnoty proměnné 
o jednu a naopak dekrementace (--) způsobí zmenšení hodnoty proměnné o jednu. Zápis může vypadat takto:

$x++ ale také ++$x

Oba zápisy jsou možné, ale každý se chová poněkud jinak. V prvním případě - $x++ vydá takovýto výraz nejprve stav proměnné x a potom k ní přičte jedničku. Tedy vydá číslo 3. Ve druhém případě - ++$x se nejprve k proměnné x přičte jednička a pak výraz vydá stav této proměnné, tedy číslo 4. Viz následující příklad:

<?php
$x = 3;
$y = $x++;
echo $y;
//Vypíše 3
echo "</br>";
echo $x;
//Vypíše 4
?>

Přiřazování a jeho další možnosti

Přiřazování zde již bylo probíráno z počátku. Ovšem existují další varianty než jen obyčejné přiřazení hodnot do proměnné.

  1. Přiřazení hodnoty do několika proměnných naráz:
    $a = $b = $c = 25;
    Po takovém přiřazení se do všech tří proměnných přiřadí hodnota 25
  2. Kombinované přiřazení:
    $a = ($b = 3) + 4;
    V tomto případě se nejdříve přiřadí hodnota 3 proměnné $b, následně se tato hodnota přičte k číslu 4 a tento výsledek se přiřadí proměnné $a.
  3. Přiřazení s operací:
    $a = $a + 3;
    Zde se proměnné $a přičte číslo 3. PHP však umožňuje zkrácený zápis:
    $a += 3;
  4. Následující tabulka obsahuje několik příkladů normální a zkrácených zápisů přiřazení proměnné s operací:
Normální zápis Zkrácený zápis
$a = $a + 33 $a += 33
$a = $a - 5 $a -= 5
$a = $a * 10 $a *= 10
$a = $a / 8 $a /= 8
$a = $a % 3 $a %= 3