PHP 5.3 Part 1 - Introduction to PHP 5.3


Published on

This is part 1 in a series about PHP 5.3.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

PHP 5.3 Part 1 - Introduction to PHP 5.3

  1. 1. PHP 5.3 – Part 1 Introduction to PHP 5.3 A Sydney PHP Group Presentation 4 th September 2008 By Timothy Chandler
  2. 2. So what’s the big deal!? <ul><li>PHP 5.3 = PHP 6 - Unicode + MORE! </li></ul><ul><li>Tomorrow’s PHP Today. </li></ul><ul><li>Forwards Compatibility. </li></ul>
  3. 3. So what’s new? <ul><li>New Syntax </li></ul><ul><li>New Functions & Methods </li></ul><ul><li>New Extensions </li></ul><ul><li>Namespaces </li></ul><ul><li>Lambda Functions & Closures </li></ul><ul><li>Late Static Binding </li></ul><ul><li>Lots of important changes </li></ul><ul><li>A few gotchas. </li></ul>
  4. 4. Important Changes & Gotchas <ul><li>Functions </li></ul><ul><ul><li>Array functions “next()” & “current()” no longer work with objects. </li></ul></ul><ul><ul><li>“ session_start()” will now return a Boolean response “false” if it fails to start a session. </li></ul></ul><ul><ul><li>By default, “ clearstatcache()” will no longer clear “realpath()” cache. </li></ul></ul>Backwards Compatibility
  5. 5. Important Changes & Gotchas <ul><li>Magic Methods </li></ul><ul><ul><li>All magic methods must now be declared as “public”. “static” declarations are no longer allowed. </li></ul></ul><ul><ul><li>“ __toString()” will no longer accept any parameters. </li></ul></ul>Backwards Compatibility
  6. 6. Important Changes & Gotchas <ul><li>New Reserved Words </li></ul><ul><ul><li>“ namespace” </li></ul></ul><ul><ul><li>“ goto” </li></ul></ul><ul><li>New Reserved Classes </li></ul><ul><ul><li>“ Closure” </li></ul></ul>Backwards Compatibility
  7. 7. Important Changes & Gotchas <ul><li>Depreciations </li></ul><ul><ul><li>Ticks </li></ul></ul><ul><ul><ul><li>This includes “register_tick_function()” </li></ul></ul></ul><ul><li>Undepreciations </li></ul><ul><ul><li>“ is_a()” </li></ul></ul>Backwards Compatibility
  8. 8. Important Changes & Gotchas <ul><li>Windows </li></ul><ul><ul><li>Any Windows OS prior to Windows 2000 is no longer supported. </li></ul></ul>Backwards Compatibility
  9. 9. Important Changes & Gotchas <ul><li>Removed </li></ul><ul><ul><li>ncurses </li></ul></ul><ul><ul><li>fpdf </li></ul></ul><ul><ul><li>sybase </li></ul></ul><ul><ul><li>dbase </li></ul></ul><ul><ul><li>fbsql </li></ul></ul>Extensions <ul><li>Added </li></ul><ul><ul><li>Phar </li></ul></ul><ul><ul><li>Internationalization (Intl) </li></ul></ul><ul><ul><li>File Information (Fileinfo) </li></ul></ul><ul><ul><li>SQLite3 </li></ul></ul>
  10. 10. Important Changes & Gotchas <ul><li>Not allowed to disable. </li></ul><ul><ul><li>PCRE </li></ul></ul><ul><ul><li>Reflections </li></ul></ul><ul><ul><li>SPL </li></ul></ul>Extensions
  11. 11. Important Changes & Gotchas <ul><li>More powerful ini. </li></ul><ul><li>A whole slew of changes which may or may not affect you. </li></ul>The PHP INI File
  12. 12. New Syntax <ul><li>It’s like HEREDOC, but it doesn’t evaluate it’s contents. </li></ul><ul><li>Syntax: </li></ul><ul><li><<<‘NOWDOC’ </li></ul><ul><li><CONTENT> </li></ul><ul><li>NOWDOC; </li></ul><ul><li>“ NOWDOC”, like “HEREDOC”, can be replaced with any non-reserved word. </li></ul>NOWDOC
  13. 13. New Syntax <ul><li>The Ternary Operator has been given a shortcut. </li></ul><ul><li>Testing for only “true” or “false” is now possible. </li></ul><ul><li>Syntax: </li></ul><ul><li>$foo=true; </li></ul><ul><li>!$foo?:print '$foo is True<br />'; </li></ul><ul><li>$bar=false; </li></ul><ul><li>$bar?:print '$bar is False<br />'; </li></ul>Ternary Operator
  14. 14. New Syntax <ul><li>You can now cast a variable to NULL while using it and remove it from memory in one fell swoop. </li></ul><ul><li>Syntax: </li></ul><ul><li>$foo='foo'; </li></ul><ul><li>$foo=(unset)print $foo; </li></ul>Unset Casting
  15. 15. New Syntax <ul><li>The new “goto” keyword is useful for controlling breaks in loops and switches. </li></ul><ul><li>Not recommended outside of loops and switches. </li></ul><ul><li>Easy to abuse – be careful with your GCP. </li></ul><ul><li>Syntax: </li></ul><ul><li>print 1; </li></ul><ul><li>goto label1; </li></ul><ul><li>print 2; </li></ul><ul><li>print 3; </li></ul><ul><li>label1: </li></ul><ul><li>print 4; </li></ul>goto
  16. 16. New Functions & Methods <ul><li>Too many for this presentation. </li></ul><ul><li>They include: </li></ul><ul><ul><li>Array </li></ul></ul><ul><ul><li>Date </li></ul></ul><ul><ul><li>GMP </li></ul></ul><ul><ul><li>Hash </li></ul></ul><ul><ul><li>Image </li></ul></ul><ul><ul><li>Math </li></ul></ul><ul><ul><li>Mcrypt </li></ul></ul><ul><ul><li>Network </li></ul></ul><ul><ul><li>PCNTL </li></ul></ul><ul><ul><li>PHP Core </li></ul></ul><ul><ul><li>SHM </li></ul></ul><ul><ul><li>SPL </li></ul></ul><ul><ul><li>Streams </li></ul></ul><ul><ul><li>Strings </li></ul></ul>
  17. 17. New Functions & Methods <ul><li>“ array_replace()” – Finds and replaces based on key and merges the remainder. </li></ul><ul><li>“ array_replace_recursive()” – Recursively finds and replaces based on key and merges the remainder. </li></ul>Array Functions
  18. 18. New Functions & Methods <ul><li>“ date_add()” – Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object. </li></ul><ul><li>“ date_sub()” – Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object </li></ul><ul><li>“ date_diff()” – Takes two DateTime Objects and calculates the difference. </li></ul>Date Functions
  19. 19. New Functions & Methods <ul><li>“ class_alias()” – Creates an alias of a class name. </li></ul><ul><li>“ forward_static_call()” and “forward_static_call_array()” – Related to Late Static Binding. This will be discussed in another presentation. </li></ul>PHP Core
  20. 20. Coming Up <ul><li>October </li></ul><ul><ul><li>Part 2 – New PHP Internals </li></ul></ul><ul><ul><ul><li>Lambda Functions and Closures </li></ul></ul></ul><ul><ul><ul><li>Namespaces – maybe? </li></ul></ul></ul><ul><li>November </li></ul><ul><ul><li>Part 3 – New PHP Extensions </li></ul></ul><ul><ul><ul><li>Internationalization </li></ul></ul></ul><ul><ul><ul><li>Phar </li></ul></ul></ul>