PHP OOP Non Static Members In Hindi


Class में बिना static keyword के define किये गए सभी Properties / Methods Non Static members होते हैं , By default ये Properties / Methods Non Static ही होते हैं।

PHP OOP Difference Between Static And Non Static

Static और Non Static में सबसे बड़ा difference यही होता है कि , Static Members (Property / Methods) Access करने के लिए हमें उस class का Object नहीं बनाना पड़ता है , simply ClassName और Double Colon (::) का use करके हम directly Class की Static Property / Methods Access कर सकते हैं।


जबकि Non Static Members को access करने के लिए Class का Object बनाना ही पड़ेगा , बिना Object बनाये Non Static Members (Property / Methods) को access नहीं कर पाएंगे।

PHP OOP Non Static Exanple

File : php_oop_non_static.php

Copy Fullscreen Close Fullscreen
<?php
        class MyClass
	{
		/*defining non static property*/
		public $property = 'This is non static proprty';

		/*defining non static method*/
		function testfun()
		{
			echo 'This is non static method';
		}
	}
	/*initialize Object so that we can access them*/
	$myobj = new MyClass();
	echo $myobj->property;
	echo '<br>'; /* for line break */
	echo $myobj->testfun();
?>
Output
This is non static property
This is non static method

हालाँकि Object initialization के बाद आप Class property को modify / update भी कर सकते हो।
For Example :

$myobj = new MyClass();
$myobj->property = 'New value';
echo $myobj->property;
//Output : New value

PHP OOP $this

पिछले Example में Non Static Property / Method को Class के बाहर Access किया था , लेकिन अगर हमें Class के अंदर किसी Method में access करना हो तो हम $this का use करते हैं। $this Class में current Object को represent करता है।


जैसे Static Property / Method को access करने के लिए self keyword का use करते थे बैसे ही Non Static Property / Method access करने के लिए $this का use करते हैं।

PHP $this Example

File : php_oop_this.php

Copy Fullscreen Close Fullscreen
<?php
	class MyCar
  	{
  		public $color = 'Green';
  		public function getCar()
  		{
  			return $this->color;
  		}
  		/* define one more function in which we'll access getCar() function*/
  		public function getCarInfo()
  		{
  			return $this->getCar();
  		}
  	}
  	$myObj = new MyCar();
  	echo $myObj->getCarInfo();
?>
Output
Green 

? सिर्फ non static Properties / Methods access को ही $this के through access कर सकते हैं।

Important
Non Static method में आप Static Properties / Methods को access कर सकते हैं , लेकिन Static Methods में Non Static Properties / Methods को access नहीं कर सकते हैं। क्योंकि Non Static Properties / Methods को access करने के लिए , Object का initialization जरूरी होता है जबकि Static Properties / Methods को बिना Object initialization के भी access कर सकते हैं।

और अगर हम ऐसा करते हैं तो PHP Fatal Error Generate करती है।
PHP Fatal error: Uncaught Error: Using $this when not in object context

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook