An object in PHP contains variables and functions. Objects typically belong to a class, which defines the variables and functions that all objects of this class will contain.
The syntax to define a class is:
class Shape {
public $sides = 0;
public function description() {
return "A shape with $this->sides sides.";
}
}
Once a class is defined, you can create an instance using:
$myShape = new Shape();
Variables and functions on the object are accessed like this:
$myShape = new Shape();
$myShape->sides = 6;
print $myShape->description(); // "A shape with 6 sides"
Classes can define a special __construct()
method, which is executed as part of object creation. This is often used to
specify the initial values of an object:
class Shape {
public $sides = 0;
public function __construct($sides) {
$this->sides = $sides;
}
public function description() {
return "A shape with $this->sides sides.";
}
}
$myShape = new Shape(6);
print $myShape->description(); // A shape with 6 sides
Class definitions can extend existing class definitions, adding new variables and functions as well as modifying those defined in the parent class.
Here is a class that extends the previous example:
class Square extends Shape {
public $sideLength = 0;
public function __construct($sideLength) {
parent::__construct(4);
$this->sideLength = $sideLength;
}
public function perimeter() {
return $this->sides * $this->sideLength;
}
public function area() {
return $this->sideLength * $this->sideLength;
}
}
The Square
class contains variables and behavior for both the Shape
class and the Square
class:
$mySquare = new Square(10);
print $mySquare->description()/ // A shape with 4 sides
print $mySquare->perimeter() // 40
print $mySquare->area() // 100