Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between object and class in PHP?

What is the difference between Object and Class in PHP? I ask because, I don't really see the point to both of them.

Can you tell me the difference with a good example?

like image 587
kuzey beytar Avatar asked Jan 29 '11 14:01

kuzey beytar


People also ask

What is the difference between object and class?

Object is an instance of a class. Class is a blueprint or template from which objects are created. Object is a real world entity such as pen, laptop, mobile, bed, keyboard, mouse, chair etc. Class is a group of similar objects.

What is the difference between a class an object and an instance?

A class is a blueprint which you use to create objects. An object is an instance of a class - it's a concrete 'thing' that you made using a specific class. So, 'object' and 'instance' are the same thing, but the word 'instance' indicates the relationship of an object to its class.

What is the difference between object and class in C++?

A class is a template for creating objects in program whereas the object is an instance of a class. A class is a logical entity while object is a physical entity.

What is the difference between class object and package?

You can create instances of a class as distinct, individual objects that behave as specified. A package is simply a namespace under which you can categorize classes, analogous to a "folder" or "path", so you can group classes with related purpose or functionality.


1 Answers

I assume you have read the manual on basic PHP OOP.

A class is what you use to define the properties, methods and behavior of objects. Objects are the things you create out of a class. Think of a class as a blueprint, and an object as the actual building you build by following the blueprint (class). (Yes, I know the blueprint/building analogy has been done to death.)

// Class class MyClass {     public $var;      // Constructor     public function __construct($var) {         echo 'Created an object of MyClass';         $this->var = $var;     }      public function show_var() {         echo $this->var;     } }  // Make an object $objA = new MyClass('A');  // Call an object method to show the object's property $objA->show_var();  // Make another object and do the same $objB = new MyClass('B'); $objB->show_var(); 

The objects here are distinct (A and B), but they are both objects of the MyClass class. Going back to the blueprint/building analogy, think of it as using the same blueprint to build two different buildings.

Here's another snippet that actually talks about buildings if you need a more literal example:

// Class class Building {     // Object variables/properties     private $number_of_floors = 5; // Each building has 5 floors     private $color;      // Constructor     public function __construct($paint) {         $this->color = $paint;     }      public function describe() {         printf('This building has %d floors. It is %s in color.',              $this->number_of_floors,              $this->color         );     } }  // Build a building and paint it red $bldgA = new Building('red');  // Build another building and paint it blue $bldgB = new Building('blue');  // Tell us how many floors these buildings have, and their painted color $bldgA->describe(); $bldgB->describe(); 
like image 57
BoltClock Avatar answered Oct 12 '22 03:10

BoltClock