Showing posts with label Object Oriented Features. Show all posts
Showing posts with label Object Oriented Features. Show all posts

Tuesday, July 17, 2012

v 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";
}
}

v Instanceof  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';
}

v 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__;
}
}

v 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
{

}

v 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):
New Object-Oriented Features:

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:

v  Public / private / protected access modifiers for methods and properties.

Allows the use of common OO access modifiers to control access to methods and properties:
class MyClass
{
private $id = 18;
public function getId()
{
return $this->id;
}
}

v  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";
}
}

v  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”;
}
}