PHP Academy · पाठ

एन्यूमरेशन (Enums)

PHP 8.1 के backed और pure enums से प्रकार-सुरक्षित मानों के समूह परिभाषित करें

पाठ 3, कुल 4 में से13 चरण

एन्यूमरेशन (Enums), CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

एनम क्या होते हैं?

PHP 8.1 में enums प्रस्तुत किए गए — यह एक विशेष प्रकार है जो किसी चर को नामित मानों के पहले से निर्धारित समूह तक सीमित करता है, जिससे कोड अधिक स्पष्ट और प्रकार-सुरक्षित बनता है।

शुद्ध एनम (यूनिट एनम)

शुद्ध एनम में बिना किसी संबद्ध मान के नामित केस होते हैं। यह स्थिति, दिशा या स्थिति को दर्शाने के लिए उपयोगी है।

<?php
enum Status {
    case Active;
    case Inactive;
    case Banned;
}

$s = Status::Active;
echo $s->name; // "Active"

बैक्ड एनम

बैक्ड एनम प्रत्येक केस को एक स्केलर मान (int या string) देता है — यह डेटाबेस में सहेजने या एपीआई प्रतिक्रियाओं के लिए उपयोगी है।

<?php
enum Color: string {
    case Red   = "red";
    case Green = "green";
    case Blue  = "blue";
}

echo Color::Red->value; // "red"

From और TryFrom

कच्चे मान को from() (अमान्य होने पर अपवाद उत्पन्न करता है) या tryFrom() (अमान्य होने पर null लौटाता है) से वापस एनम केस में बदलें।

<?php
$color = Color::from("red");      // Color::Red
$maybe = Color::tryFrom("purple"); // null

प्रकार संकेतों में एनम

पैरामीटर और वापसी प्रकारों के लिए एनम को प्रकार संकेत के रूप में उपयोग करें — PHP यह सुनिश्चित करता है कि केवल मान्य केस ही भेजे जा सकें।

<?php
function paint(Color $color): void {
    echo "Painting with ".$color->value;
}
paint(Color::Blue); // "Painting with blue"

match में एनम केस

पूर्ण प्रबंधन के लिए एनम, match अभिव्यक्तियों के साथ बहुत अच्छी तरह काम करते हैं।

<?php
$label = match($status) {
    Status::Active   => "Active user",
    Status::Inactive => "Inactive account",
    Status::Banned   => "Banned",
};
// PHP can warn if cases are unhandled

एनम इंटरफ़ेस लागू करता है

एनम इंटरफ़ेस लागू कर सकते हैं, जिससे बहुरूपी व्यवहार संभव होता है।

<?php
interface HasLabel {
    public function label(): string;
}

enum Status: string implements HasLabel {
    case Active   = "active";
    case Inactive = "inactive";
    public function label(): string {
        return ucfirst($this->value);
    }
}

एनम विधियाँ

एनम में विधियाँ हो सकती हैं (लेकिन कोई कंस्ट्रक्टर या परिवर्तनशील गुण नहीं हो सकते)।

<?php
enum Suit: string {
    case Hearts   = "H";
    case Diamonds = "D";
    case Clubs    = "C";
    case Spades   = "S";

    public function color(): string {
        return match($this) {
            Suit::Hearts, Suit::Diamonds => "red",
            Suit::Clubs,  Suit::Spades  => "black",
        };
    }
}

एनम स्थिरांक

संबंधित स्केलर मानों के लिए एनम में स्थिरांक (केस नहीं) हो सकते हैं।

<?php
enum Direction {
    case North;
    case South;
    const DEFAULT = self::North;
}

केस की सूची बनाना

EnumName::cases() सभी एनम केस ऑब्जेक्ट का एक ऐरे लौटाता है — यह ड्रॉपडाउन विकल्प बनाने के लिए उपयोगी है।

<?php
$options = Color::cases();
foreach ($options as $c) {
    echo $c->name.": ".$c->value."\n";
}

एनम बनाम वर्ग स्थिरांक

एनम प्रकार सुरक्षा लागू करते हैं — जहाँ Status एनम अपेक्षित हो, वहाँ आप गलती से पूर्णांक 1 नहीं भेज सकते। वर्ग स्थिरांक ऐसी कोई गारंटी नहीं देते।

सारांश

एनम प्रकार सुरक्षा के साथ मानों के निश्चित समूह व्यक्त करते हैं। स्थिति के लिए शुद्ध एनम और डेटाबेस या एपीआई मानों की आवश्यकता होने पर बैक्ड एनम का उपयोग करें। सुरक्षित विश्लेषण के लिए tryFrom() का उपयोग करें।

त्वरित जाँच

यदि कोई केस मेल नहीं खाता, तो Color::tryFrom("invalid") क्या लौटाता है?

शुरुआत निःशुल्क

एआई शिक्षक के साथ PHP सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
49
पाठ
195

अक्सर पूछे जाने वाले प्रश्न

क्या “एन्यूमरेशन (Enums)” पाठ निःशुल्क है?

हाँ—“एन्यूमरेशन (Enums)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“एन्यूमरेशन (Enums)” में मैं क्या सीखूँगा?

PHP 8.1 के backed और pure enums से प्रकार-सुरक्षित मानों के समूह परिभाषित करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“एन्यूमरेशन (Enums)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Match एक्सप्रेशन और नामित आर्ग्युमेंट
  2. Nullsafe ऑपरेटर और Union प्रकार
  3. एन्यूमरेशन (Enums)
  4. Fibers: सहकारी समांतरता
← PHP Academy पर वापस जाएँ