Sie sind auf Seite 1von 4

PHP6 made even easier for you to write feature filled PHP applications.

PHP supports almost all ISPs , Now-a-days it is used in Most popular Web design and
development companies like Yahoo!, Google and using for millions of domains. New
versions of PHP aim to add to this success by introducing new features that make
PHP more usable in all cases and more secure in others areas.This article main
focuses on the changes for PHP V6 — some of them back-ported or drawbacks in
older versions PHP V5.x. Php6 new features made even easier for you to write
feature-filled PHP applications.

Unicode

Unicode at present can be set on request basis. This make PHP having to store both
Unicode and non-Unicode variants of class, method and function names in the
symbol tables. In PHP6 Unicodesetting made for server wide, not request wide.
Turning Unicode off where not required can help performance and they quote some
string functions as being up to 300% slower and whole applications 25% slower as a
result. The decision to move it to the php.ini in my mind does take the control away
from the user, and puts it into the hands of the Web Host.

Register Globals

Register Globals this is one feature is finally going in php6. It will no longer exist
php.ini file setting, and if found it in ini file it will raise an E_CORE_ERROR. This
means that PHP6 will finally break all PHP3 era scripts no recourse at all but to re-
code it. this is a big move, but a needed one to remove in php.

Magic Quotes

Magic quotes next important feature of PHP is also removed form PHP6, It will no
longer exist php.ini file setting, and if found it in ini file it will raise an
E_CORE_ERROR as like Register Globals. Removing this will impact magic_quotes,
magic_quotes_sybase and magic_quotes_gpc.

Safe Mode Deprecated

Safe Mode feature of PHP is also removed form PHP6, This may please developers
who have web hosts that insist upon safe mode. It also will no longer exist php.ini
file setting, and if found it in ini file it will raise an E_CORE_ERROR. The main reason
behind removing this to make php6 more Secure.

PHP6 Made 'Var' to 'public'

PHP4 used 'var' within classes. PHP5 raises a warning under E_STRICT when ‘var’ is
used . This warning will be removed in PHP6 and instead 'var' will mean the same
thing as 'public'. This is a nice move but I if anyone has updated their scripts to
work under E_STRICT in PHP5 it will be a redundant one for them.

PHP6 will Throw error for Return by Reference


Both '$foo =& new StdClass()' and 'function &foo' will now raise an E_STRICT error.

zend.ze1 compatbility mode to go

ze1 always tried to retain old PHP4 behaviour, but apparently it "doesn't work
100%" anyway, so it will be removed totally and throw an E_CORE_ERROR if
detected.

Freetype 1 and GD 1 support to go

Support for both freetype1 and gd1 old libssupport are removed.

dl() moves to SAPI only

Each SAPI will register the use of this function as required, only the CLI and embed
SAPIs will do this from now on. It will not be available elsewhere.

FastCGI always on

The FastCGI code will be cleaned up and always enabled for the CGI SAPI, it will not
be able to be disabled.

Register Long Arrays to go

Remember the HTTP_*_VARS globals from yesteryear? Well if you're not already
using $_GET, $_POST, etc - start doing so now, because the option to enable long
arrays is going (and will throw an E_CORE_ERROR).

Extension Movements

The XMLReader and XMLWriter extensions will move into the core distribution and
will be on by default.

The ereg extension will move to PECL (and thus be removed from PHP). This means
that PCRE will not be allowed to be disabled. This will make way for the new regular
expression extension based on ICU.

The extremely useful Fileinfo exntesion will move into the core distribution and
enabled by default.

PHP Engine Additions

64 bit integers

A new 64 bit integer will be added (int64). There will be no int32 (it is assumed
unless you specify int64)

Goto

No 'goto' command will be added, but the break keyword will be extended with a
static label - so you could do 'break foo' and it'll jump to the label foo: in your code.

ifsetor()
It looks like we won't be seeing this one, which is a shame. But instead the ?:
operator will have the 'middle parameter' requirement dropped, which means you'd
be able to do something like this: "$foo = $_GET['foo'] ?: 42;" (i.e. if foo is true, $foo
will equal 42). This should save some code, but I personally don't think it is as
'readable' as ifsetor would have been.

foreach multi-dim arrays

This is a nice change - you'll be able to foreach through array lists, i.e. "foreach( $a
as $k => list($a, $b))".

{} vs []

You can currently use both {} and [] to access string indexes. But the {} notation
will raise an E_STRICT in PHP5.1 and will be gone totally in PHP6. Also the [] version
will gain substr and array_slice functionality directly - so you could do "[2,]" to
access characters 2 to the end, etc. Very handy.

Changes in Object Oriented Concepts

Static Binding

A new keyword will be created to allow for late static binding - static::static2(), this
will perform runtime evaluation of statics.

Namespaces

It looks like this one is still undecided - if they do implement namespaces it will be
using their style only. My advice? Don't hold your breath!

Type-hinted Return Values

Although they decided against allowing type-hinted properties (becaue it's "not the
PHP way") they will add support for type-hinted return values, but have yet to
decide on a syntax for this. Even so, it will be a nice addition.

Calling dynamic functions as static will E_FATAL

At the moment you can call both static and dynamic methods, whether they are
static or not. Calling a dynamic function with the static call syntax will raise an
E_FATAL.

Additions to PHP

APC to be in the core distribution

The opcode cache APC will be included in the core distribution of PHP as standard, it
will not however be turned on by default (but having it there saves the compilation
of yet another thing on your server, and web hosts are more likely to allow it to be
enabled)
Hardened PHP patch

This patch implements a bunch of extra security checks in PHP. They went over it
and the following changes will now take place within PHP: Protection against HTTP
Response Splitting will be included. allow_url_fopen will be split into two:
allow_url_fopen and allow_url_include. allow_url_fopen will be enabled by default.
allow_url_include will be disabled by default.

E_STRICT merges into E_ALL

Wow, this is quite a serious one! E_STRICT level messages will be added to E_ALL by
default. This shows a marked move by the PHP team to educate developers on 'best
practises' and displaying language-level warnings in a "Hey, you're doing it the
wrong way".

Farewell <%

They will remove support for the ASP style tags, but the PHP short-code tag will
remain (<?) - so to those on php general who reckon the short-tag is 'depreciated'

CAT Technologies implementing PHP6 in application development by removing


features likes of register globals, magic quotes, long arrays, {} string indexes and
call-time-pass-by-references and forcing all developers to clean up their code
making use of php6.

Das könnte Ihnen auch gefallen