Константи в PHP

Какво е константа? Дефиниране на константи. Синтаксис.

Константите в PHP, подобно на променливите, представляват конструкции на езика, в които може да се съхраняват стойности от различни типове. Основната разлика между константи и променливи е, че както подсказва самото им название, константите не могат да бъдат променяни след като веднъж са били дефинирани и им е била присвоена някаква стойност. Тази стойност не може да бъде нито увеличавана, нито намалявана, нито заменяна, нито анулирана.

Константите се дефинират и им се присвоява стойност чрез функцията define(). Синтаксисът на функцията е следния:

define(име на константа, стойност на константа)

В кръглите скоби на функцията се записват последователно името на константата и нейната стойност, отделени със запетая.

Пред имената на константите не се поставя символ за долар или някакъв друг символ.

Имената на константите могат да бъдат каквито пожелаете, името го избирате вие. При избор на името трябва да спазвате същите правила както при избор на име на променлива – названието на константа може да съдържа латински букви, арабски цифри и символа долно тире (_), като може да започва с буква или с тире, но не и с цифра.

По подразбиране има значение дали названията на константите са изписани с големи или малки букви, т.е. konstanta, Konastanta и KONSTANTA са три различни имена на константи. Това положение може да бъде променено с използване на ключовата дума true, както е обяснено в примерите по-долу.

Не е задължително, но е прието имената на константите да се пишат с главни букви.

Стойностите на константите могат да бъдат само от следните типове:

  • целочислени стойности,
  • стойности с плаваща запетая,
  • булеви стойности (вярно / невярно),
  • низове (поредици от символи).

Друга разлика между константите и променливите е, че константите по подразбиране имат глобален обхват на действие, т.е. те са достъпни на всяко място без да е необходимо да бъдат декларирани като глобални чрез ключовата дума global.

Пример за дефиниране на константа:

<?php
define(KONST1, "Така се дефинират константи");
echo KONST1;
?>

Горният код ще изведе съобщението „Така се дефинират константи„, тъй като това е стойността, която сме задали на константата KONST1. Понеже става дума за стойност от тип string (низ), тя е затворена в кавички.

Както беше споменато по-горе, по подразбиране има значение дали названието на константата е с малки или големи букви. Например ако напишем кода:

<?php
define(KONST1, "Така се дефинират константи");
echo konst1;
?>

върнатият резултат ще бъде konst1.

Има начин названията на константите да станат нечувствителни към употребата на малки и големи букви. За целта е необходимо след стойността на константата да добавим ключовата дума true. В такъв случай кода:

<?php
define(KONST1, "Така се дефинират константи", true);
echo konst1;
?>

ще ни върне като резултат съобщението „Така се дефинират константи„, тъй като вече няма значение дали името на константата се изписва с малки или с големи букви.

Предварително дефинирани константи. Магически константи.

Подобно на предварително дефинираните функции и променливи, PHP поддържа и широк набор от предварително дефинирани константи, т.е. константи, които няма нужда да бъдат декларирани чрез функцията define(), а могат направо да се използват в скриптовете. Списък с тези константи може да видите в официалния сайт predefined constants.

Съществуват и 5 специални предварително дефинирани константи, наречени „магически константи“ (magic constants), които не са константи в пълния смисъл на думата, тъй като могат да променят своята стойност в зависимост от контекста, в който са използвани.

„Магическите константи“ са следните:

__FILE__ указва пълния път до текущия файл
__LINE__ указва текущия ред във файла
__FUNCTION__ указва име на функция
__CLASS__ указва име на клас
__METHOD__ указва име на метод

Например константата __FILE__ съдържа като стойност името и пълния път до текущия файл и ще има различна стойност в зависимост от това с какъв файл се работи в момента и къде се намира той. Ако например работите с файл на вашето устройство, който се нарича test.php и се намира в папка htdocs, която се намира в папка xampp, която е в папка Program Files на диск C:, тогава кодът:

<?php
echo __FILE__;
?>

ще ни върне като резултат пълния път до файла, а именно:

C:\Program Files\xampp\htdocs\test.php

Обновена: 12.12.2022

Беше ли Ви полезна тази статия?

Вижте още