PHP6 is taking an interesting move in my mind - it's as if the PHP developers want to now educate developers about the right way to code something, and remove those lingering issues with "Well you SHOULD be doing it this way, but you can still do it the old way". This will not be the case any longer. Removing totally the likes of register globals, magic quotes, long arrays, {} string indexes and call-time-pass-by-references will force developers to clean up their code.It will also break a crapload of scripts beyond repair that doesn't involve some serious re-writing. Is this a bad thing? I don't think so myself, but I see it making the adoption of PHP6 even slower than that of PHP5, which is a real shame. However they have to leap this hurdle at some point, and once they've done it progression to future versions should be swifter.
שינויים:
The register_globals, safe_mode and the various magic quotes options will be removed.
The ereg extension is removed, while the XMLReader, XMLWriter and Fileinfo extensions are added to the core, and by default are on.
Another addition I find particularly exciting is that APC (Alternative PHP Cache) will be added to the core, though will be off by default. APC can provide serious performance benefits.
All E_STRICT messages will be merged into E_ALL, another positive change that will encourage good programming practice.
ASP style <% tags will no longer be supported.
Addition of a new 64-bit integers. The current integer type remains as is, 32 or 64-bit dependent on the platform.
Use of foreach with multi-dimensional arrays, for example foreach($array as $k => list($a, $b)).
A new switch in php.ini will allow you to disable Unicode semantics (by default they will be on).
There will also be various string improvements related to Unicode.
The microtime() function will return the full floating point number, rather than microseconds unix_timestamp, as at present, probably making the function more readily useful for most people.
The {} notation for string indexes will no longer be supported, while the version will get added substr() and array_slice() functionality. Previously was deprecated, but most developers, including myself, seem to use .
FastCGI will always be enabled for the CGI SAPI, and will not be able to be disabled.
The ancient HTTP_*_VARS globals will no longer be supported. Everyone should have had more than enough time to remove any traces of these.
var will alias public. var was permitted with PHP4 classes, but in PHP 5 this raised a warning. In PHP 6 var will simply be an alias for public, so no warning is necessary.
The ze1 compatibility mode, which tried to retain PHP 4 behaviour but had some bugs, will be removed.
Dynamic functions will no longer be permitted to be called with static syntax.
ועכשיו, אחרי שקראתם את כל זה, אני יכול להגיד לכם:
1 באפריל! חחח עבדתי עליכם D: חחח
ד"א אם אתם שואלים את עצמכם מאיפה הבאתי את כל מה שיש למעלה, כנסו לכאן:
http://www.phpbuilder.com/columns/ian_gilfillan20051206.php3