"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के लिए एक शुरुआती गाइड

PHP में कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के लिए एक शुरुआती गाइड

2024-11-08 को प्रकाशित
ब्राउज़ करें:728

A Beginner’s Guide to Constructor Property Promotion in PHP

PHP 8 ने कंस्ट्रक्टर प्रॉपर्टी प्रमोशन नामक एक शानदार सुविधा पेश की। यदि आप सामान्य रूप से PHP या प्रोग्रामिंग में नए हैं, तो यह थोड़ा जटिल लग सकता है। लेकिन घबराना नहीं! यह ब्लॉग आपको बताएगा कि यह क्या है, यह क्यों उपयोगी है, और आप इसे ढेर सारे कोडिंग उदाहरणों के साथ कैसे उपयोग कर सकते हैं। आएँ शुरू करें!

कंस्ट्रक्टर प्रॉपर्टी प्रमोशन क्या है?

PHP 8 से पहले, गुणों के साथ एक क्लास बनाने और उन्हें कंस्ट्रक्टर में आरंभ करने के लिए काफी दोहराव वाले कोड की आवश्यकता होती थी। कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के साथ, PHP 8 आपको सीधे कंस्ट्रक्टर मापदंडों में क्लास प्रॉपर्टी घोषित करने और आरंभ करने की सुविधा देकर इस प्रक्रिया को सरल बनाता है।

आपको परवाह क्यों करनी चाहिए?

कंस्ट्रक्टर प्रॉपर्टी प्रमोशन केवल कोड की कुछ पंक्तियों को सहेजने के बारे में नहीं है - यह आपके कोड को साफ-सुथरा, पढ़ने में आसान और बनाए रखने में आसान बनाने के बारे में है। यह शुरुआती लोगों के लिए विशेष रूप से मूल्यवान है, जिन्हें कंस्ट्रक्टर लिखने का पारंपरिक तरीका थोड़ा कठिन लग सकता है।

पारंपरिक तरीका बनाम कंस्ट्रक्टर संपत्ति संवर्धन

आइए कक्षाओं और कंस्ट्रक्टरों को लिखने के पारंपरिक तरीके की तुलना PHP 8 में पेश किए गए नए तरीके से करके शुरू करें।

PHP 8 से पहले (पारंपरिक तरीका)

class Car {
    public string $make;
    public string $model;
    public int $year;

    public function __construct(string $make, string $model, int $year) {
        $this->make = $make;
        $this->model = $model;
        $this->year = $year;
    }
}

$car = new Car('Toyota', 'Corolla', 2020);

इस उदाहरण में, हमें गुणों ($मेक, $मॉडल, और $वर्ष) की घोषणा करनी होगी और फिर उन्हें कंस्ट्रक्टर के अंदर असाइन करना होगा। यह बहुत अधिक दोहराव है, विशेष रूप से उन वर्गों के साथ काम करते समय जिनमें कई गुण होते हैं।

PHP 8 के साथ (कन्स्ट्रक्टर प्रॉपर्टी प्रमोशन)

class Car {
    public function __construct(
        public string $make,
        public string $model,
        public int $year
    ) {}
}

$car = new Car('Toyota', 'Corolla', 2020);

कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के साथ, आप कंस्ट्रक्टर मापदंडों में गुणों की घोषणा और असाइनमेंट करते हैं। परिणाम एक अधिक संक्षिप्त और पठनीय वर्ग परिभाषा है।

अधिक कोडिंग उदाहरण

कंस्ट्रक्टर प्रॉपर्टी प्रमोशन की शक्ति को पूरी तरह से समझने के लिए, आइए विभिन्न परिदृश्यों में और उदाहरण देखें।

उदाहरण 1: पुस्तक वर्ग को परिभाषित करना

class Book {
    public function __construct(
        public string $title,
        public string $author,
        public int $pages,
        public bool $isAvailable = true
    ) {}
}

$book = new Book('1984', 'George Orwell', 328);
echo $book->title; // Output: 1984
echo $book->isAvailable; // Output: 1 (true)

इस पुस्तक वर्ग में, उपलब्ध संपत्ति का डिफ़ॉल्ट मान सत्य है। यदि आप क्लास का उदाहरण बनाते समय इस पैरामीटर को निर्दिष्ट नहीं करते हैं, तो यह स्वचालित रूप से सत्य पर सेट हो जाएगा।

उदाहरण 2: एक ऑर्डर क्लास बनाना

class Order {
    public function __construct(
        public int $orderId,
        public string $product,
        public float $price,
        public string $status = 'pending'
    ) {}
}

$order = new Order(123, 'Laptop', 999.99);
echo $order->status; // Output: pending

$order2 = new Order(124, 'Smartphone', 599.99, 'shipped');
echo $order2->status; // Output: shipped

यहां, ऑर्डर वर्ग में लंबित डिफ़ॉल्ट मान के साथ एक स्थिति संपत्ति शामिल है। हालाँकि, आप ऑर्डर बनाते समय एक अलग स्थिति प्रदान करके इस मान को ओवरराइड कर सकते हैं।

उदाहरण 3: एक उपयोगकर्ता प्रोफ़ाइल वर्ग का निर्माण

class UserProfile {
    public function __construct(
        public string $username,
        public string $email,
        public int $age,
        private string $password,
        protected string $role = 'user'
    ) {}

    public function getPassword(): string {
        return $this->password;
    }
}

$userProfile = new UserProfile('johndoe', '[email protected]', 25, 'secret');
echo $userProfile->username; // Output: johndoe
echo $userProfile->getPassword(); // Output: secret
echo $userProfile->role; // Error: Cannot access protected property

UserProfile क्लास में, पासवर्ड प्रॉपर्टी निजी है, जिसका अर्थ है कि इसे क्लास के बाहर सीधे एक्सेस नहीं किया जा सकता है। इसके बजाय, आप इसे पुनः प्राप्त करने के लिए getPassword() विधि का उपयोग करते हैं। भूमिका संपत्ति सुरक्षित है, इसलिए इसे केवल कक्षा के भीतर या उपवर्गों द्वारा ही एक्सेस किया जा सकता है।

उदाहरण 4: कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के साथ एक उत्पाद वर्ग

class Product {
    public function __construct(
        public string $name,
        public float $price,
        public int $stock = 0
    ) {}
}

$product = new Product('Laptop', 999.99, 10);
echo $product->name; // Output: Laptop
echo $product->stock; // Output: 10

यह उदाहरण दिखाता है कि आप उत्पाद वर्ग बनाने के लिए कंस्ट्रक्टर प्रॉपर्टी प्रमोशन का उपयोग कैसे कर सकते हैं जिसमें स्टॉक प्रॉपर्टी के लिए डिफ़ॉल्ट मान शामिल है।

कंस्ट्रक्टर प्रॉपर्टी प्रमोशन के लाभ

  1. **कम बॉयलरप्लेट कोड: **आपको संपत्तियों को घोषित करने और आरंभ करने के लिए दोहरावदार कोड लिखने की आवश्यकता नहीं है।

  2. पठनीयता में वृद्धि: वर्ग की परिभाषा अधिक संक्षिप्त और एक नज़र में समझने में आसान है।

  3. त्रुटियां कम: संपत्ति घोषणा और आरंभीकरण को मिलाकर, गलतियों की गुंजाइश कम होती है।

निष्कर्ष

PHP 8 में कंस्ट्रक्टर प्रॉपर्टी प्रमोशन एक शक्तिशाली सुविधा है जो आपके कक्षाओं को लिखने के तरीके में काफी सुधार कर सकती है। बॉयलरप्लेट कोड को कम करके, पठनीयता बढ़ाकर, और अपने कोड को अधिक रखरखाव योग्य बनाकर, यह एक ऐसी सुविधा है जिसे नए और अनुभवी डेवलपर्स दोनों सराहेंगे।

चाहे आप एक छोटा प्रोजेक्ट बना रहे हों या एक बड़ा एप्लिकेशन, कंस्ट्रक्टर प्रॉपर्टी प्रमोशन आपको क्लीनर, अधिक कुशल PHP कोड लिखने में मदद करेगा। तो आगे बढ़ें, इसे अपने अगले प्रोजेक्ट में आज़माएँ, और इस अद्भुत सुविधा का लाभ उठाएँ!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/asfiaaiman/a-beginners-guide-to-constructor-property-promotion-in-php-5p1?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3