PHP5 introduces many new features, I have mentioned some of them:
Unified Constructors and Destructors:
In PHP4, constructors had same name as the class name. In PHP5, you have
to name your constructors as __construct() and destructors as
__destruct().
Abstract:
In PHP5 you can
declare a class as
Abstract.
Startic Methods and properties:
Static methods and properties are also available. When you declare a class member as static, then you can access members using :: operator without creating an instance of class.
_autoload()
PHP5 introduces a special function called
__autoload()
Final:
PHP5 allows you to declare a class or method as
Final
Magic Methods
PHP5 introduces a number of magic methods.
__call, __get, __set and __toString
Visibility:
In PHP5, There are 3 levels of visibilities:
Public: Methods are accessible to everyone including objects outside the classes.
Private: only available to the class itself.
Protected: accessible to the class itself and inherited class.
Exception:
PHP5 has introduced ‘exceptions’(exception errors)
Passed by reference
In PHP4, everything was passed by value, including objects. Whereas in PHP5, all objects are passed by reference.
Interfaces:
PHP5 introduces
interfaces . An interface defines the methods a class must implement. All the methods defined in an interface must be public.
E_STRICT Error Level
PHP5 introduces new error level defined as ‘E_STRICT’
E_STRICT will notify you when you use
depreciated code.
PHP5 also introduces new default extensions.
- SimpleXML: for easy processing of XML data
- DOM and XSL
- PDO .
- Hash :gives you access to a ton of hash functions.
New Functions
PHP5 introduces new functions. You can get a list of them from the
PHP Manual.
PHP5 is a lot different than PHP4. With
the vastly improved Object Oriented model in PHP5, PHP is now a lot
closer to a fully fledged object orientated programming language and
looks more like ASP.NET now. Here are 10 major differences between PHP4
and PHP5 that you need to know:
1. Unified Constructors and Destructors:
In
PHP4, constructors had same name as the class name. This used to cause
overhead because every time you changed the class name, you had to
change all the occurrences of that name.
In PHP5, you simply need
to name your constructors as __construct(). (the word ‘construct’
prefixed by double underscores). Similarly you can name your destructors
as __destruct(). (the word ‘destruct’ prefixed by double underscores.)
In destructors, you can write code that will get executed when the
object is destroyed.
2. Abstract Class:
PHP5 lets you
declare a class as ‘Abstract’. (i.e. a class whose object cannot be
created. You can only extend an abstract class) Also, a class must be
defined as abstract if it contains any abstract methods. And those
abstract methods must be defined within the class which extend that
abstract class. You can include complete method definitions within the
abstract methods of abstract class.
3. Final Keyword:
PHP5
allows you to declare a class or method as ‘Final’ now. You just need
to use ‘final’ keyword that will indicate that the class cannot be
inherited or the method cannot be overridden.
4. Exception Handling:
PHP5
has introduced ‘exceptions’. An exception is simply a kind of error and
the ‘exception error’ can be handled in an exception object. By using
an exception, one can gain more control over the simple trigger_error
notices we were stuck with before.
When you are about to perform
something ‘risky’ in your code, you can surround your code with a
‘try…catch’ block. First you surround your code in a ‘try {…….}’ block,
then if an exception is thrown, your following ‘catch{……}’ block is
there to intercept the error and handle it accordingly. You can write
some PHP code in your ‘catch’ block which will get executed when an
error occurs in the ‘try’ block. If there is no ‘catch’ block, a fatal
error occurs.
5. E_STRICT Error Level:
PHP5 introduces new
error level defined as ‘E_STRICT’ (value 2048). This error levels
notifies you when you use depreciated PHP code. It is not included in
E_ALL, if you wish to use this new level you must specify it explicitly.
6. Autoloading (the __autoload() function):
PHP5
introduces a special function called ‘__autoload()’ (the word
‘autoload’ prefixed by double underscores). This function allows you to
avoid writing a long list of includes at the top of your script by
defining them inside this function. So you can automatically load object
files when PHP encounters a class that hasn’t been defined yet.
Example:
function __autoload ($class_name) {
include $class_name . '.php';
}
7. Visibility:
In PHP5, class methods and properties now have ‘visibility’. There are 3 levels of visibilities:
Public: ‘Public’ is the most visible. Methods are accessible to
everyone including objects outside the classes. And properties readable
and writable by everyone including objects outside the classes.
Private: ‘Private’ makes class members only available to the class itself.
Protected: ‘Protected’ makes class members accessible to the class
itself and any inherited class (subclass) as well as any parent classes.
PHP4′s
method of declaring a variable as ‘var’ keyword is still supported in
PHP5. The ‘var’ keyword is now a synonym for the ‘public’ keyword now.
8. Pass by Reference:
In
PHP4, everything was passed by value, including objects. Whereas in
PHP5, all objects are passed by reference. Take a look at this PHP4 code
for example -
$peter = new Person();
$peter->sex = ’male’;
$maria = $peter;
$maria->sex = ’female’;
echo $peter->sex; // This will output ‘female’
As
you can see in the code above, if you wanted to duplicate an object in
PHP4, you simply copied it by assigning it to another variable (Pass by
value). But now in PHP5 you must use the new ‘clone’ keyword. So the
above PHP4 code, will now look like this in PHP5 -
$peter = new Person();
$maria = new Person();
$peter->sex = ’male’;
$maria = clone $peter;
$maria->sex = ’female’;
echo $peter->sex; // This will output ‘female’
9. Interfaces:
PHP5
introduces ‘interfaces’ . An interface defines the methods a class must
implement. All the methods defined in an interface must be public. An
interface helps you design common APIs. It is not designed as a
blueprint for classes, but just a way to standardize a common API. A big
advantage of using interfaces is that a class can implement any number
of interfaces. You can still only ‘extend’ on parent class, but you can
‘implement’ an unlimited number of interfaces.
10. New Functions:
PHP5 introduces new functions which are not found in PHP4. You can find the list of these new functions in the PHP manual.
No comments:
Post a Comment