Slovník pojmů

Proměnná

Proměnná, anglicky variable, dává programu pojmenovaný odkaz na hodnotu. Dobře zvolený název vysvětluje, co údaj znamená, aniž by čtenář musel rozebírat každý řádek kódu.

Stručná definice

Název, hodnota a rozsah patří k sobě.

Proměnná uchovává hodnotu, se kterou program právě pracuje: cenu v haléřích, stav objednávky, seznam položek nebo objekt zákazníka. Samotný název není hodnota ani business pravidlo. Je to čitelný způsob, jak na hodnotu odkazovat při výpočtu, předání do funkce nebo sestavení odpovědi API.

V PHP je typ proměnné obvykle určen hodnotou za běhu. To neznamená, že typy a pojmenování nejsou důležité: deklarace parametrů a návratových hodnot, datové objekty, PHPDoc a statická analýza pomáhají odhalit, zda například částka není omylem text nebo zda chybějící zákazník není použit jako hotový objekt.

K čemu slouží

Pojmenovat mezivýsledek i vstup do dalšího kroku.

Proměnné drží lokální stav algoritmu. Jejich název má popisovat význam v doméně, nikoliv mechaniku právě napsaného řádku.

  • cena položky, množství a vypočtená celková částka objednávky
  • ověřená identita uživatele a aktuální tenant při autorizaci
  • data přijatá z API před validací a datový objekt po ní
  • dočasný výsledek dotazu, mapování nebo výpočtu
  • konfigurace předaná závislosti, pokud nejde o globální stav

Praktický příklad

Částka objednávky v menších měnových jednotkách

Výpočet má proměnné pojmenované podle významu. U ceny se neukládá nejasné $price, ale částka a jednotka, ve které se pracuje. Příklad záměrně neřeší daň ani slevu; ukazuje jen čitelný lokální výpočet.

Taková proměnná neověřuje vstup od uživatele. Pokud množství přichází z requestu, backend ho musí před výpočtem validovat a podle potřeby autorizovat související operaci.

PHP

$quantity = 2;
$unitPriceInCents = 1_990;
$totalInCents = $quantity * $unitPriceInCents;

// 3 980, tedy 39,80 Kč při zobrazení v této měně

Jak proměnná funguje

Od vstupní hodnoty k jasnému výsledku

Proměnná má obvykle omezený rozsah: vznikne ve funkci, pomůže provést jeden krok a po skončení funkce už není dostupná.

  1. Vznik hodnoty Program přečte parametr, výsledek dotazu, konfiguraci nebo hodnotu z dřívějšího výpočtu.
  2. Pojmenování Název vyjadřuje význam a jednotku, například totalInCents místo obecného data nebo value.
  3. Práce v rozsahu Funkce hodnotu čte, skládá, porovnává nebo předává další funkci v místním scope.
  4. Výsledek Proměnná se vrátí jako hodnota, uloží se do objektu nebo poslouží k vytvoření odpovědi.
  5. Konec života Po opuštění lokálního rozsahu už proměnná není rozhraním pro další části aplikace.

Důležité pojmy

Proměnná není konstanta, parametr ani vlastnost objektu.

Podobné zápisy mohou nést odlišnou odpovědnost. Správné rozlišení omezuje skrytý stav i matoucí názvy.

Název a hodnota

Název $orderId odkazuje na hodnotu, například 123. Název má vysvětlit význam hodnoty, ne její aktuální obsah.

Rozsah platnosti

Lokální proměnná ve funkci není běžně dostupná mimo ni. Menší rozsah omezuje nečekané vedlejší změny.

Přiřazení a reference

PHP standardně přiřazuje hodnoty. Reference přes & vytváří alias pro stejnou proměnnou a může ztížit pochopení změn; používá se jen s jasným důvodem.

Parametr a vlastnost

Parametr je proměnná předaná funkci. Vlastnost patří konkrétnímu objektu a může vyjadřovat jeho dlouhodobější stav.

Typ a kontrakt

PHP proměnná může mít za běhu různé hodnoty. Typové deklarace okolo funkcí a vlastností však pomáhají určit, co je v daném místě povoleno.

Vztah k podobným pojmům

Pojmenovaná hodnota není totéž co datové úložiště.

Proměnná existuje během běhu programu. Databázový sloupec, JSON pole nebo konfigurace mohou být zdrojem její hodnoty, ale nejsou jí samotnou.

Konstanta
Pojmenovává hodnotu, která se během běhu nemění. Proměnná může být znovu přiřazena.
Datový typ
Určuje, jaký druh hodnoty se očekává. Proměnná je konkrétní pojmenovaný nositel této hodnoty.
Funkce
Přijímá parametry, pracuje s lokálními proměnnými a může vrátit novou hodnotu.
Databázový sloupec
Definuje uložený údaj v tabulce. Po načtení se jeho hodnota může stát proměnnou v PHP.

Výhody a omezení

Dobré jméno snižuje kognitivní zátěž, ale nenahradí návrh.

Přínosy

  • čitelný mezikrok místo opakovaného složitého výrazu
  • snazší předání hodnoty mezi funkcemi
  • pojmenovaná jednotka a význam dat, například amountInCents
  • menší lokální scope omezuje nechtěné sdílení stavu

Časté chyby

  • obecné názvy typu data, value nebo result bez kontextu
  • jedna proměnná, která během funkce změní význam i typ
  • globální proměnné jako skrytý vstup nebo výstup
  • spoléhání na nedefinovanou proměnnou místo jasné inicializace a kontroly

Praktická hranice

Proměnná má být krátké vysvětlení, ne náhradní datový model.

Jednoduché lokální proměnné zpřehledňují výpočet, transformaci API payloadu i rozhodnutí v aplikační službě. Jakmile hodnota nese více propojených pravidel, například částku a měnu nebo stav objednávky, bývá čitelnější malý datový objekt či value object než několik nesouvisejících proměnných.

Pro hodnotu sdílenou napříč requesty nestačí proměnná v paměti jednoho PHP procesu. Takový stav patří podle účelu do databáze, cache, session nebo explicitně předaného kontextu.

Na co myslet

Význam, jednotka a rozsah jsou součást kvality kódu.

Malé rozhodnutí o názvu proměnné ovlivňuje review, testování i bezpečné změny ve větším systému.

  • pojmenovat boolean podle otázky, například isPaid nebo hasAccess
  • uvádět jednotku, pokud ji nelze bezpečně odvodit z typu
  • nevkládat citlivé hodnoty do názvů, logů ani chybových hlášek
  • držet proměnnou v nejmenším rozumném scope
  • nepřepisovat hodnotu jiným významem; raději vytvořit novou proměnnou nebo typ

Časté otázky

Proměnné v praxi

Je proměnná totéž co konstanta?

Ne. Proměnná může během běhu získat jinou hodnotu. Konstanta pojmenovává hodnotu, která se v daném běhu programu nemění.

Musí mít každá PHP proměnná výslovně napsaný typ?

Ne. PHP určuje typ hodnoty za běhu. U veřejných hranic funkcí, vlastností a návratových hodnot však deklarace typů výrazně zpřesňují kontrakt.

Je vlastnost objektu jen proměnná?

Technicky drží hodnotu, ale má jinou roli: patří konkrétnímu objektu a obvykle vyjadřuje jeho stav. Lokální proměnná žije jen v daném bloku kódu.

Proč nepojmenovat vše jednoduše $data?

Protože název pak neříká, zda jde o objednávku, ověřený vstup, cenu, API payload nebo odpověď. Přesný název zkracuje porozumění i review.

Jak pracuji s PHP v praxi

Čitelný kód stavím na jasných názvech a odpovědnostech.

V backendových aplikacích propojuji typy, testy a srozumitelný doménový model tak, aby změny zůstaly bezpečně dohledatelné.

Zavolejte mi

Zavolám vám následující pracovní den mezi 9:00 a 17:00.

Můžete mi také zavolat rovnou.

+420 605 181 728

Nechte mi telefonní číslo a pošlete žádost o zpětné zavolání.

Odesláním souhlasíte se zpracováním údajů pro vyřízení žádosti.