क्लास PHP में कोड को व्यवस्थित करने की एक इकाई है। किसी चीज़ का व्यवहार या किसी प्रक्रिया का व्यवहार दर्शाने वाला कोड एक क्लास के रूप में एक साथ समूहित किया जा सकता है। किसी क्लास को दिए गए फंक्शन को परंपरा से methods कहा जाता है।
<?php
class Door
{
function lock()
{
// ...
}
function unlock()
{
// ...
}
}
क्लास का इंस्टेंस new कीवर्ड से बनाया जाता है। यह क्लास के इंस्टेंस के लिए मेमोरी आवंटित करता है और क्लास के कंस्ट्रक्टर मेथड को कॉल करता है। बनाए गए इंस्टेंस को किसी वेरिएबल में असाइन किया जा सकता है। किसी क्लास इंस्टेंस के मेथड कॉल करने के लिए हम -> एक्सेस ऑपरेटर का उपयोग कर सकते हैं।
<?php
$a_door = new Door();
$a_door->lock();
$a_door->unlock();
कोई बना हुआ इंस्टेंस खास $this वेरिएबल की मदद से खुद को संदर्भित कर सकता है। क्लास में प्रॉपर्टी भी हो सकती हैं, जो ऐसे वेरिएबल की तरह काम करती हैं जो क्लास ऑब्जेक्ट के इंस्टेंस से जुड़े होते हैं। इन प्रॉपर्टी को क्लास के भीतर से या बाहर से संदर्भित किया जा सकता है।
<?php
class Car
{
public $color;
function __construct($color)
{
$this->color = $color;
}
function getColor()
{
return $this->color;
}
}
$a_car = new Car("red");
$a_car->color; // => "red" by accessing the property
$a_car->getColor(); // => "red" by invoking the instance method
इस अभ्यास में आप एक विंडो पर आधारित कंप्यूटर सिस्टम का अनुकरण करेंगे। आप कुछ विंडो बनाएँगे, जिन्हें हिलाया जा सकता है और जिनका आकार बदला जा सकता है। नीचे दिया गया चित्र उन वैल्यू को दर्शाता है जिनके साथ आप आगे काम करेंगे।
╔════════════════════════════════════════════════════════════╗
║ ║
║ position::$y,_ ║
║ position::$x \ ║
║ \<---- size::$width ----> ║
║ ^ *──────────────────────┐ ║
║ | │ title │ ║
║ | ├──────────────────────┤ ║
║ | │ │ ║
║ size::$height │ │ ║
║ | │ contents │ ║
║ | │ │ ║
║ | │ │ ║
║ v └──────────────────────┘ ║
║ ║
║ ║
╚════════════════════════════════════════════════════════════╝
दिए गए क्लास ढाँचे का उपयोग करके y, x, height और width वैल्यू के लिए प्रॉपर्टी दीजिए।
<?php
$window = new ProgramWindow();
$window->y; // => null
$window->x; // => null
$window->height; // => null
$window->width; // => null
ProgramWindow के लिए एक कंस्ट्रक्टर फंक्शन बनाइए।
इसे कोई आर्गुमेंट नहीं लेना चाहिए, लेकिन कंस्ट्रक्टर के चलने के दौरान इसकी प्रॉपर्टी की डिफॉल्ट वैल्यू तय कीजिए।
इसे शुरुआती y और x वैल्यू 0 पर रखना चाहिए।
शुरुआती height और width को 600x800 स्क्रीन साइज़ पर रखना चाहिए।
<?php
$window = new ProgramWindow();
$window->y; // => 0
$window->x; // => 0
$window->height; // => 600
$window->width; // => 800
Size.php में Size नाम की एक नई क्लास बनाइए।
इस क्लास के कंस्ट्रक्टर को ऐसे आर्गुमेंट लेने चाहिए जो height और width प्रॉपर्टी तय करें।
इसके अलावा ProgramWindow को एक आकार बदलने वाला फंक्शन चाहिए, जो Size ऑब्जेक्ट का इंस्टेंस लेता है और ProgramWindow की अपनी प्रॉपर्टी बदल देता है।
<?php
$window = new ProgramWindow();
$size = new Size(764, 1080);
$window->resize($size)
$window->height;
// => 764
$window->width;
// => 1080
Position.php में Position नाम की एक नई क्लास बनाइए।
इस क्लास के कंस्ट्रक्टर को ऐसे आर्गुमेंट लेने चाहिए जो y और x प्रॉपर्टी तय करें।
इसके अलावा ProgramWindow को एक हिलाने वाला फंक्शन चाहिए, जो Position ऑब्जेक्ट का इंस्टेंस लेता है और ProgramWindow की अपनी प्रॉपर्टी बदल देता है।
<?php
$window = new ProgramWindow();
$position = new Position(80, 313);
$window->move($position)
$window->y;
// => 80
$window->x;
// => 313
Exercism पर साइन अप कीजिए और PHP को 11 कॉन्सेप्ट122 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।