मैजिक विधियों का परिचय
__toString, __get, __set और PHP की अन्य मैजिक विधियाँ सीखें
मैजिक विधियों का परिचय, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
परिचय: PHP की जादुई विधियाँ
जादुई विधियाँ दो अंडरस्कोर उपसर्ग वाली विशेष PHP विधियाँ हैं, जिन्हें PHP इंजन विशेष परिस्थितियों में अपने-आप चलाता है। इनके माध्यम से आप वस्तु के व्यवहार में जुड़ाव-बिंदु प्राप्त कर सकते हैं।
मुख्य अवधारणाएँ
PHP की जादुई विधियों की मुख्य अवधारणाएँ:
__toString()— वस्तु को स्ट्रिंग में बदलना__get/__set/__isset/__unset— गुणों तक पहुँच को रोककर संभालना__call/__callStatic— विधि-कॉल को रोककर संभालना__invoke()— कॉल करने योग्य वस्तु
__toString
उदाहरण:
<?php
class Money {
public function __construct(
private float $amount,
private string $currency
) {}
public function __toString(): string {
return number_format($this->amount, 2) . ' ' . $this->currency;
}
}
$price = new Money(9.99, 'USD');
echo $price; // 9.99 USD
echo 'Price: ' . $price; // Price: 9.99 USD__get और __set
आगे:
<?php
class DynamicObject {
private array $data = [];
public function __get(string $name): mixed {
return $this->data[$name] ?? null;
}
public function __set(string $name, mixed $value): void {
$this->data[$name] = $value;
}
}
$obj = new DynamicObject();
$obj->name = 'Alice';
echo $obj->name; // Alice__isset और __unset
अभ्यास:
<?php
class Model {
private array $attributes = [];
public function __set(string $k, mixed $v): void { $this->attributes[$k] = $v; }
public function __get(string $k): mixed { return $this->attributes[$k] ?? null; }
public function __isset(string $k): bool { return isset($this->attributes[$k]); }
public function __unset(string $k): void { unset($this->attributes[$k]); }
}
$m = new Model();
$m->email = 'a@b.com';
var_dump(isset($m->email)); // true
unset($m->email);
var_dump(isset($m->email)); // false__call और __callStatic
अधिक गहराई से:
<?php
class FluentQuery {
private array $clauses = [];
public function __call(string $name, array $args): static {
$this->clauses[$name] = $args[0] ?? null;
return $this;
}
public function toSql(): string {
return 'SELECT * FROM '
. ($this->clauses['from'] ?? 'unknown');
}
}
echo (new FluentQuery())->from('users')->toSql();
// SELECT * FROM users__invoke
उन्नत उपयोग:
<?php
class Multiplier {
public function __construct(private float $factor) {}
public function __invoke(float $value): float {
return $value * $this->factor;
}
}
$double = new Multiplier(2);
echo $double(5); // 10
echo $double(21); // 42
$funcs = [new Multiplier(2), new Multiplier(3)];
foreach ($funcs as $fn) echo $fn(4) . ' '; // 8 12__clone
वास्तविक उपयोग का प्रतिरूप:
<?php
class Config {
private array $data = [];
public function set(string $k, mixed $v): self {
$this->data[$k] = $v;
return $this;
}
public function __clone() {
// deep clone nested objects if needed
}
}
$original = (new Config())->set('theme', 'dark');
$copy = clone $original; // triggers __clone__debugInfo
सर्वोत्तम अभ्यास:
<?php
class ApiClient {
public function __construct(
private string $baseUrl,
private string $apiKey // sensitive!
) {}
public function __debugInfo(): array {
return [
'baseUrl' => $this->baseUrl,
'apiKey' => '***' . substr($this->apiKey, -4), // mask key
];
}
}
var_dump(new ApiClient('https://api.example.com', 'secret123'));
// Shows masked keyव्यावहारिक प्रतिरूप
PHP की जादुई विधियों के व्यावहारिक प्रतिरूप के साथ सभी अवधारणाओं को एक साथ लागू करें।
सामान्य समस्याएँ
PHP की जादुई विधियों के साथ इन सामान्य गलतियों से बचें:
- वस्तुओं को अर्थपूर्ण ढंग से प्रिंट करने के लिए __toString() का उपयोग करें
- __get/__set प्रॉक्सी/डेकोरेटर प्रतिरूपों को सक्षम करते हैं
- __invoke वस्तुओं को कॉल करने योग्य बनाता है (array_map के साथ उपयोगी)
- __debugInfo संवेदनशील डेटा को var_dump में दिखाई देने से रोकता है
त्वरित जाँच
कौन-सी जादुई विधि PHP की वस्तु को किसी फ़ंक्शन की तरह कॉल करने योग्य बनाती है?
पुनरावलोकन: PHP की जादुई विधियाँ
आपने PHP की जादुई विधियों का अध्ययन कर लिया है। याद रखने योग्य मुख्य बातें:
- वस्तुओं को अर्थपूर्ण ढंग से प्रिंट करने के लिए __toString() का उपयोग करें
- __get/__set प्रॉक्सी/डेकोरेटर प्रतिरूपों को सक्षम करते हैं
- __invoke वस्तुओं को कॉल करने योग्य बनाता है (array_map के साथ उपयोगी)
- __debugInfo संवेदनशील डेटा को var_dump में दिखाई देने से रोकता है
एआई शिक्षक के साथ PHP सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 49
- पाठ
- 195
अक्सर पूछे जाने वाले प्रश्न
क्या “मैजिक विधियों का परिचय” पाठ निःशुल्क है?
हाँ—“मैजिक विधियों का परिचय” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“मैजिक विधियों का परिचय” में मैं क्या सीखूँगा?
__toString, __get, __set और PHP की अन्य मैजिक विधियाँ सीखें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“मैजिक विधियों का परिचय” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- क्लास, प्रॉपर्टी और विधियाँ
- कंस्ट्रक्टर और डिस्ट्रक्टर
- स्टैटिक प्रॉपर्टी और विधियाँ
- मैजिक विधियों का परिचय