What is Class in PHP

What is Class in PHP: यदि बिल्कुल ही सरल शब्दों में कहें तो Class Object Oriented Programming System का एक ऐसा Concept है, जिसके Rules को Follow करके हम नए प्रकार का Data Type Create करते हैं जो कि पूरी तरह से किसी Real World Object को Computer में Logically Represent करता है और उस Data Type को हम ठीक उसी तरह से अपने Computer Program में Use करते हैं, जिस तरह से किसी Basic या Primary Data Type जैसे कि Integer, Float, String आदि को Use करते हैं।

नए Data Type को Create करने का फायदा ये होता है कि हम किसी Computer Program में किसी Real World Object को उसी तरह से Model कर सकते हैं, जिस तरह से वह Object Real World में होता है और हमारे Program में वह Object ठीक उसी तरह से Behave करता है, जिस तरह से वह Object Real Life में Behave करता है।

Class एक प्रकार से किसी समस्या को बेहतर तरीके से Programming Language में Model करने का तरीका होता है। एक Class के हमेंशा दो हिस्से होते हैं, जिन्हें Attributes व Behaviors कहते हैं।

Attributers के रूप में हमें किसी Object की उन Properties या Data को Specify करना होता है, जिन्हें हम Class के Objects द्वारा Handle करना चाहते हैं। जबकि Behaviors वे Functions होते हैं, जो Class के Object के Data को Access व Manipulate करने की क्षमता रखते हैं।

PHP में एक Class को ठीक उसी तरह से Create किया जाता है, जिस तरह से “C++” या “Java” में Create किया जाता है। PHP में Class यानी एक नया User Defined Data Type Create करने के लिए हमें निम्न Syntax को Follow करना होता हैः

class ClassName
{
	// Field declarations defined here

	// Method declarations defined here
}

जब हम किसी समस्या का Abstraction करते हैं, तब हमें हमारी समस्या से संबंधित जो जरूरी अवयव मिलते हैं, जिनके Data को हमें हमारे Program में Handle करना होता है, उन जरूरी अवयवों को हम Class के अन्दर Attributes के रूप में Specify करते हैं। जबकि उन Attributes के साथ जिस-जिस तरह की प्रक्रिया की जा सकती है, उन सभी प्रकार की प्रक्रियाओं को करने के लिए हम Class की Body के अन्दर जो Functions Create करते हैं, उन Functions को Object के Behavior के रूप में Specify करते हैं।

किसी Object की विभिन्न Characteristics को जब हम किसी Programming Language के Coding Construct के संदर्भ में देखते हैं, तब उन्हें कई नामों से जाना जाता है। सामान्यतः हम किसी Object की विभिन्न Characteristics को Attributes, Fields, Properties, Data Members, Columns आदि नामों से Represent कर सकते हैं। जबकि उसी Object के Behaviors को Class के संदर्भ में Member Functions, Operations, Interfaces, Methods आदि नामों से Represent किया जाता है।

यानी हम Attribute कहें, Fields कहें, Properties कहें, Data Members कहें या Columns कहें, सभी का मतलब एक ही है कि हम Object के Characteristics की बात कर रहे हैं। इसी तरह से हम Member Functions कहें, Operations कहें या Methods कहें, सभी का मतलब यही है कि हम Object के Behaviors की बात कर रहे हैं।

जब हम किसी Problem का Abstraction करते हैं, तब हमें Object के समस्या से संबंधित जरूरी Characteristics प्राप्त होते हैं। इन Characteristics को ही Class के Attributes या Properties कहते हैं।

पिछले Section में हमने User Registration समस्या का Abstraction किया था और उस Abstraction के दौरान हमने User Registration से संबंधित दो मूल Characteristics NameEmail प्राप्त किए थे। इन दोनों Files को हम निम्नानुसार Specify कर सकते हैं:

Properties
Name
Email

जिस तरह से Real World में हर Object किसी न किसी तरह का काम करता है, जिसे उस Object का Behavior कहते हैं, उसी तरह से हमारे User Registration समस्या में भी किसी User का Registration हो सकता है, किसी Registered User को Unregister किया जा सकता है। किसी User का Registration Confirm हो सकता है या किसी User का Registration Pending हो सकता है।

यानी ये सभी वे काम हैं जो किसी न किसी तरह से User के NameEmail पर किसी न किसी तरह का Operation Perform करते हैं या दूसरे शब्दों में कहें तो Name या Email अथवा दोनों को Access व Manipulate करते हैं। इसलिए इन कामों को हम User Registration समस्या के Behaviors मान सकते हैं। User Registration समस्या से संबंधित इन Behaviors को हम निम्नानुसार भी Specify कर सकते हैं:

Behaviors
Register
Unregister

चूंकि User का Registration Confirm है या Pending, इस बात को हम एक Boolean Type के Variable द्वारा Identify कर सकते हैं, इसलिए इन दोनों बातों को User Registration के Behavior के स्थान पर एक Attribute के रूप में ज्यादा आसानी से Handle किया जा सकता है। इसीलिए उपरोक्त Behaviors में हमने इनको शामिल नहीं किया है।

अब यदि हम User Registration समस्या के Attributes व Behaviors को एक साथ Specify करना चाहें, तो ये काम हम निम्नानुसार कर सकते हैं:

Properties
Name
Email
Confirm

Behaviors
Register
Unregister

अब हमारे पास हमारी User Registration समस्या से संबंधित Properties व Behaviors दोनों हैं। यदि हम चाहें तो इन दोनों बातों को एक Group या Unit के रूप में Represent करने के लिए इन्हें Curly Braces के बीच निम्नानुसार Specify कर सकते हैं, जो कि इस बात को Indicate करेगा कि ये दोनों किसी एक ही समस्या से संबंधित हैं:

{

Properties
Name
Email
Confirm

Behaviors
Register
Unregister

}

किसी समस्या से संबंधित सभी Properties व Behaviors को एक Unit के रूप में Combine करने की प्रक्रिया को Encapsulation कहा जाता है। यानी हमने हमारी User Registration समस्या से संबंधित Attributes व Behaviors को उपरोक्त Segment के अनुसार Represent करके एक Encapsulated Unit के रूप में Specify कर लिया है।

हालांकि हमने हमारी समस्या से संबंधित Properties व Behavior को एक Unit के रूप में Specify कर लिया है, लेकिन इस Representation को यदि एक नाम दे दिया जाए, तो हम हमारी जरूरत के अनुसार विभिन्न प्रकार की समस्याओं से संबंधित Properties व Behaviors को अलग-अलग Encapsulated Units के रूप में आसानी से Identify कर सकेंगे। यानी हम उपरोक्त Segment को निम्नानुसार एक नाम Specify कर देते हैं:

UserRegistration
{

Properties
Name
Email
Confirm

Behaviors
Register
Unregister

}

यही है Class और किसी भी Programming Language में Class को इसी तरह से Create किया जाता है। यदि हम उपरोक्त Segment के नाम से पहले Prefix के रूप में class Keyword का प्रयोग कर लें तथा Properties को PHP के Variables की तरह तथा Behaviors को PHP के Function की तरह Represent कर दें, तो हमें उपरोक्त Segment निम्नानुसार प्राप्त होगा, जो कि PHP की एक पूर्ण PHP Class को Represent करेगाः

class UserRegistration
{
//Properties
$name;
$email;
$confirm;

//Behaviors
function register() {}
function unregister() {}
}

हालांकि उपरोक्त Code Segment एक पूर्ण PHP Class को Represent कर रहा है, लेकिन जब हम किसी Class के अन्दर किसी Attribute को Specify करते हैं, तो हमें उस Attribute के नाम से पहले var, public, private, protected, final, static में से किसी एक Keyword का प्रयोग करना जरूरी होता है, जिससे PHP Normal Variable और किसी Class के अन्दर Define किए गए Member Variable या Data Members को अलग-अलग Uniquely Identify करने में सक्षम हो पाता है। ये सभी Keywords Class के अन्दर क्मपिदम किए जाने वाले Attributes के Scope को Specify करते हैं। यानी यदि हम उपरोक्त Code Segment को पूर्ण Working PHP Class के रूप में Specify करना चाहें, तो हमारी Class निम्नानुसार होगीः

<?php
	class UserRegistration
	{
		//Properties
			var $name;
			public $email;
			private $confirm;
		
		//Behaviors
			function register() {} 
			function unregister() {}
	}
?>

यानी PHP में किसी Class को Create करने के लिए हमें सबसे पहले समस्या को पहचानना होता है और उस समस्या का Abstraction करके समस्या से संबंधित सभी जरूरी बातों को बिना जरूरी बातों से अलग करना होता है।

जब हम किसी समस्या पर Abstraction Apply करते हैं, तो हमें उस समस्या से संबंधित Attributes प्राप्त होते हैं।

फिर हमें ये पता करना होता है कि समस्या में ऐसे कौनसे काम किए जाने हैं, जिससे हमें प्राप्त होने वाले Attributes पर किसी न किसी तरह का Directly या Indirectly प्रभाव पडे। यानी समस्या के Operations कौन-कौन से हैं, जिन्हें समस्या में Handle करना है।

समस्या से संबंधित Attributes को Variables के रूप में व Operations को Function के रूप में Specify कर लिया जाता है और इन दोनों को एक Unit के रूप में Represent करने के लिए इन्हें Curly Braces के एक Block के बीच लिख लिया जाता है।

समस्या से संबंधित Attributes व Behaviors को Curly Braces के Block के बीच Specify करने की प्रक्रिया को Encapsulation कहा जाता है, क्योंकि जब हम इस Class के Object Create करते हैं, तो Object के Data को Access करने के लिए हमें Object की Class द्वारा Specified Member Functions या Methods को ही Access करना होता है।

यानी हमें केवल इतना ध्यान रखना होता है कि किसी जरूरत को पूरा करने के लिए हमें Object के किस Method को Call करना है। हमारी जरूरत को पूरा करने के लिए Object में Internally ये Functions किस प्रकार से अपने Data को Access करते हैं और हमें हमारा Required Result किस प्रकार से Provide करते हैं, इस बात की हमें कोई चिन्ता नहीं करनी होती है, क्योंकि हमारे Object के Data व उन Data को Access करने वाले Methods दोनों ही Object के अन्दर ही Encapsulated होते हैं।

अब class Keyword के साथ इस Encapsulated Unit का एक Well Meaningful नाम दे दिया जाता है और यही नाम एक नई Create होने वाली Class को Represent करता है, जो कि हमारे Program में किसी Real World समस्या से संबंधित मूल Object को एक नए User Defined Data Type की तरह Represent करता है।

जब एक बार हम कोई Class Create कर लेते हैं, तो वह Class किसी भी Basic Data Type की तरह Behave करता है और हम उस Class के उसी तरह से Objects Create कर सकते हैं, जिस तरह से किसी Basic Data Type के Variables Create करते हैं।

Class वास्तव में केवल एक Model होता है जो इस बात को Specify करता है कि इस Class के Create होने वाले Variables में क्या-क्या Attributes होंगे और वह Object अपने इन Attributes के साथ क्या-क्या Operations Perform कर सकता है और किस-किस तरह के Results Generate कर सकता है।

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS