The new OO features are too numerous to give a detailed description in this section. Chapter 3, “PHP 5 OO Language,” details each feature.The following list provides the main new features:
public/private/protectedaccess modifiers for methods and properties.Allows the use of common OO access modifiers to control access tomethods and properties:
class MyClass {
private $id = 18;
public function getId() {
return $this->id;
}
}
Unified constructor name__construct().
Instead of the constructor being the name of the class, it is now declared as __construct(), which makes it easier to shift classes inside class hierarchies:
class MyClass {
function __construct() {
print "Inside constructor";
}
}
Object destructor support by defining a __destructor() method.Allows defining a destructor function that runs when an object is destroyed:
class MyClass {
function __destruct() {
print ”Destroying object”;
}
}
Interfaces.
Gives the ability for a class to fulfill more than one is-a relationships. A class can inherit only from one class, but may implement as many interfaces as it wants:
interface Display {
function display();
}
class Circle implements Display {
function display() {
print "Displaying circle\n";
}
}
instance of operator.
Language-level support for is-a relationship checking. The PHP 4 is_a() function is now deprecated:
if ($obj instanceof Circle) {
print '$obj is a Circle';
}
Final methods.
The final keyword allows you to mark methods so that an inheriting class cannot overload them:
class MyClass {
final function getBaseClassName() {
return __CLASS__;
}
}
Final classes.
After declaring a class as final , it cannot be inherited. The following example would error out.
final class FinalClass {
}
class BogusClass extends FinalClass {
}
Explicit object cloning.
To clone an object, you must use the clone keyword. You may declare a __clone() method, which will be called during the clone process (after the properties have been copied from the original object):
Comments
Post a Comment