Константите на класа са подобни на обикновените константи с изключение на това, че живеят вътре в класа. Константите на класа не могат да се променят, оттук и името константа. Те се декларират с помощта на ключовата дума const и се разпределят в паметта веднъж на клас, а не всеки път, когато създавате обекта; това се има предвид, когато чуете, че константите живеят в класа. Те приличат на статичните променливи в този смисъл, но статичните променливи могат да бъдат модифицирани. За достъп до константата на класа трябва да използвате името на класа и оператора за разрешаване на обхват (двойно двоеточие).

Константите нямат никакви модификатори на видимост, като частни, публични или защитени, и нямат $ пред тях, както имат свойствата. Най-бързият начин да илюстрирате константите е с пример. Нека надградим класовете Dog and Car, които създадохме в предишната статия.



Ако започнем с класа Dog, кои са някои константи, които всяко куче трябва да има? С други думи, какво е нещо, което не се променя между всяко куче? Няколко константи, които изникват в главата ми, са, че всяко куче има опашка и сърце. И така, нека ги добавим към класа. Не забравяйте, че константите се добавят извън методите, но вътре във фигурните скоби на класа. Те започват с ключовата дума constи обикновено се изписват с главни букви, за да ги разграничат от всички други ключови думи.

const HAS_HEART = true;
const HAS_TAIL = true;

Ако искаме бързо да покажем изхода на константата, не е нужно да инстанцираме обекта; можем да използваме оператора за разделителна способност за достъп до постоянната стойност, която се намира в класа Dog, т.е. Dog::HAS_HEART.

var_dump( Dog::HAS_HEART);

Нека да разгледаме друг пример, класът автомобил. За да може една кола да е разрешена за движение по пътищата, тя трябва да има фарове, задни светлини и мигачи. Това са константите, които ще дефинираме за нашия клас Автомобили.

Отново, за да ги дефинираме, започваме с ключовата дума const, последвана от името на константата. Смятам, че в този момент не е необходимо да се споменава конвенцията за именуване на константа, тъй като константите следват същата конвенция за именуване като всички други етикети в PHP, но ето го: валидно име на константа започва с буква или долна черта, последвана с произволен брой букви, цифри или долни черти.

const HAS_HEADLIGHTS = true;
const HAS_TAIL_LIGHTS = true;
const HAS_TURN_SIGNALS = true;

Също така не е нужно просто да var_dump нашите константни стойности; можем да ги използваме за изграждане на низ. Нека комбинираме нашата константна стойност вътре в „троичен оператор“, за да създадем малък низ.

echo „Това превозно средство е “ . ((Car::HAS_HEADLIGHTS) ? “кола.”: “не е кола.”);

Ако сме дефинирали нашите константи правилно, резултатът от израза по-горе трябва да бъде: Превозното средство е кола.

Ще ви оставя една последна мисъл за константите. Константите могат да съхраняват същите стойности като свойства в клас. Това е всичко, което трябва да знаете за константите. Забавлявайте се с програмирането.



Дино Чаич в момента е ръководител на ИТ в LSBio (LifeSpan BioSciences, Inc.), Absolute Antibody, Kerafast, Everest BioTech, Nordic MUbio и Exalpha. Той също така служи като главен изпълнителен директор на MyAutoSystem. Има повече от десетилетие опит в софтуерното инженерство. Той има B.S. по компютърни науки и непълнолетна по биология. Неговият опит се състои от създаване на приложения за електронна търговия на корпоративно ниво, извършване на научноизследователска разработка на софтуер и улесняване на разпространението на знания чрез писане.

Можете да се свържете с него в LinkedIn, да го последвате в Instagram или да се абонирате за неговата публикация в Medium.

Прочетете всяка история от Dino Cajic (и хиляди други писатели в Medium). Вашият членски внос директно подкрепя Дино Чаич и други писатели, които четете. Освен това ще получите пълен достъп до всяка история в Medium.