PHP 8 ने कंस्ट्रक्टर प्रॉपर्टी प्रमोशन नामक एक शानदार सुविधा पेश की। यदि आप सामान्य रूप से PHP या प्रोग्रामिंग में नए हैं, तो यह थोड़ा जटिल लग सकता है। लेकिन घबराना नहीं! यह ब्लॉग आपको बताएगा कि यह क्या है, यह क्यों उपयोगी है, और आप इसे ढेर सारे कोडिंग उदाहरणों के साथ कैसे उपयोग कर सकते हैं। आएँ शुरू करें!
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
यह उदाहरण दिखाता है कि आप उत्पाद वर्ग बनाने के लिए कंस्ट्रक्टर प्रॉपर्टी प्रमोशन का उपयोग कैसे कर सकते हैं जिसमें स्टॉक प्रॉपर्टी के लिए डिफ़ॉल्ट मान शामिल है।
**कम बॉयलरप्लेट कोड: **आपको संपत्तियों को घोषित करने और आरंभ करने के लिए दोहरावदार कोड लिखने की आवश्यकता नहीं है।
पठनीयता में वृद्धि: वर्ग की परिभाषा अधिक संक्षिप्त और एक नज़र में समझने में आसान है।
त्रुटियां कम: संपत्ति घोषणा और आरंभीकरण को मिलाकर, गलतियों की गुंजाइश कम होती है।
PHP 8 में कंस्ट्रक्टर प्रॉपर्टी प्रमोशन एक शक्तिशाली सुविधा है जो आपके कक्षाओं को लिखने के तरीके में काफी सुधार कर सकती है। बॉयलरप्लेट कोड को कम करके, पठनीयता बढ़ाकर, और अपने कोड को अधिक रखरखाव योग्य बनाकर, यह एक ऐसी सुविधा है जिसे नए और अनुभवी डेवलपर्स दोनों सराहेंगे।
चाहे आप एक छोटा प्रोजेक्ट बना रहे हों या एक बड़ा एप्लिकेशन, कंस्ट्रक्टर प्रॉपर्टी प्रमोशन आपको क्लीनर, अधिक कुशल PHP कोड लिखने में मदद करेगा। तो आगे बढ़ें, इसे अपने अगले प्रोजेक्ट में आज़माएँ, और इस अद्भुत सुविधा का लाभ उठाएँ!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3