PHP Classes and Objects

Introduction to PHP Classes

Class एक object oriented programming feature है। इसके द्वारा आप किसी data और उस पर perform होने वाले operations को एक साथ bind करते है। Class में data properties (variables) के द्वारा represent किया जाता है। Data पर perform होने वाले operations class में function द्वारा represent किये जाते है।

Class c language में structure की तरह होती है। जिस प्रकार c language में structure के अंदर अलग अलग data types के variables create करके उनका एक compound type create किया जाता है और बाद में उस type के variables create किये जाते है। उसी प्रकार class में भी आप अलग अलग data types के variables create कर सकते है। फर्क सिर्फ इतना होता है की class में आप variables के आलावा functions भी define कर सकते है। इस प्रकार class भी एक type होती है, जिसके variables objects कहलाते है।

Class को आप एक घर के नक़्शे की तरह समझ सकते है। इस नक़्शे के आधार पर कई घर (objects) बनाये जा सकते है जिनमें अलग अलग familiies (information/data) रह सकती है। आसान शब्दों में कहा जाए तो class एक blue print होता और object उसका real representation होता है।

Class से data secure हो जाता है। Class data को secure करने के लिए PHP आपको visibility mechanism provide करती है। Visibility के द्वारा आप data के access को control कर सकते है।

Class create करके आप एक तरह के data को दूसरी तरह के data से separate कर सकते है। उदाहरण के लिए आप किसी company के marketing department का data और उससे related operations एक class द्वारा represent कर सकते है और sales department का data और उससे related operations दूसरी class द्वारा represent कर सकते है। Data और उससे सम्बंधित functions को अलग अलग classes में define करने से program की complexity कम हो जाती है।

एक class programmer को data centred approach provide करती है। Classes में पूरा focus data पर होता है जो की object oriented programming का एक feature है।

Syntax of PHP Class

PHP में class आप class keyword को use करते हुए define करते है। इसका general syntax निचे दिया जा रहा है।

classKeyword className
{
     //Properties & Functions here.....
}

Example

PHP में class create करने का simple उदाहरण निचे दिया जा रहा है।

<?php

class Employee
{
    public $name = "Fred";  //Property

    public function dispFunction()  //Function
    {
          return $this->name;
    }
}

?>

जैसा की मैने आपको पहले बताया class किसी नक़्शे की तरह होती है और जिसके आधार पर कितने भी घर बनाये जा सकते है जिनमें अलग अलग families रह सकती है। ऊपर दिए गए उदाहरण में एक Employee class create की गयी है। इस class के आप कितने भी objects create कर सकते है।

हाँलाँकि इस उदाहरण में पहले से ही property की value define कर दी गयी है लेकिन constructors के माध्यम से आप हर object की properties को अलग अलग values pass कर सकते है। इसके बारे में और अधिक आप आगे आने वाली tutorials जानेंगे।

Class Objects

जिस प्रकार Integer, float और character आदि data types होते है, उसी प्रकार class भी एक type होती है। फर्क सिर्फ इतना होता है की class एक user defined type होती जो user स्वयं अपनी आवश्यकता के अनुसार define करता है।

Class type के भी variables create किये जाते है। Class type के variables को objects कहा जाता है। इन objects के द्वारा आप class में define की गयी अलग properties में data store करवाते है।

उदाहरण के लिए आप ऊपर create की गयी Employee class के 10 objects create कर सकते है और उन objects द्वारा 10 employees की information जैसे की उनका नाम आदि store और access कर सकते है।

जब भी आप कोई object create करते है तो PHP आपको class में define की गयी properties के अनुसार memory में space provide करती है। इस space में information आप object के नाम द्वारा store और access करते है। इस प्रकार आप अलग अलग objects द्वारा अलग अलग information store कर पाते है।

Syntax of Creating Objects

Object को normal variables की तरह declare नहीं किया जाता है। Objects declare करने के लिए new keyword use किया जाता है। Objects create करने का general syntax निचे दिया जा रहा है।

$objectName = new className;

Objects create करते समय constructor को argument भी pass किये जा सकते है। ऐसी situation में आप object declare करने के लिए निचे दिया गया syntax use कर सकते है।

$objectName = new className(arg-list);

Example:

<?php

class Employee
{
    public $name = "Fred";  //Property

    public function dispFunction()  //Function
    {
            return $this->name;
    }
}

$obj = new Employee();  //Creating Object

echo "<h2>Name</h2>".$obj->dispFunction()."<h2>is printed using class object.</h2>";

?>

ऊपर दिए गए उदाहरण में Employee class create की गयी है। जैसा की आप देख सकते है इस class के अंदर एक property और एक function declare किया गया है। Property को value पहले से ही assign की गयी है।

Class properties को values आप manually assign ना करते हुए object create करते समय भी pass कर सकते है। ऐसा constructors द्वारा किया जाता है जिसके बारे में आप आगे की tutorials में जानेंगे।

Function के अंदर property को return किया जा रहा है। Function में $this keyword का use किया गया है। यह keyword current class के object की तरह use किया जाता है। Class members को सिर्फ class objects द्वारा access किया जा सकता है। इसलिए $this यँहा पर Employee class के object की तरह use किया गया है। इस keyword से $name property को access किया गया है।

आखिर में class के बाहर Employee class का object create किया गया है और dispFunction() को call किया गया है। यह उदाहरण निचे दिया गया output generate करता है।

PHP classes and objects in Hindi