Saturday, 20 June 2015

New features of PHP 5.5 with Examples


New features of PHP 5.5 with Examples


Following are 5.5 new features.

  1. Generators: has been added via the yield keyword.
    Generators provide an easy way to implement simple iterators.
    For Example:
     function xrange($start, $limit, $step = 1) {
        for ($i = $start; $i <= $limit; $i += $step) {
            yield $i;
        }
      }
      
      echo 'List of odd Numbers:';
      
      foreach (xrange(1, 9, 2) as $number) {
          echo "$number ";
      }
      
  2. finally: keyword added in try catch.
    In try catch, finally block will be called every time, regardless of whether an exception has been thrown or not.
    For Example:
        
        try {
        //write code here 
      }
      catch (Exception $e) {
          //Exception comes here
      }
      finally {
          echo "I am called everytime";
      } 
  3. New password hashing API
    Password hashing API that makes it easier to securely hash and manage passwords using the same crypt() in PHP has been added.
  4. foreach now supports list()
    Now in PHP5.5, You can use list function inside foreach function.
    See Example
     $listArray = [
        [10, 20],
        [30, 40],
        [50, 60],
    ];
    
    foreach($listArray as list($a, $b)) {
        echo "A: $a; B: $b";
    } 
  5. empty() supports expressions
    Now you can use expression in empty function.
    For Example:
      if(!empty(2*3)){
        echo "Its working";
        }
  6. Array and String literal dereferencing.
    String and Array can now be dereferenced directly to access individual elements OR characters.
    For Example
    echo 'Array dereferencing: ';
      echo [10, 02, 30][0];//10
      echo "\n";
      
      echo 'String dereferencing: ';
      echo 'Web Technology'[0]; //W
        
  7. Class name resolution via ::class
    ClassName::class to get a fully qualified name of class ClassName.
    For Example
    namespace Foo;
      class Bar {}
       
      echo Bar::class;
  8. OPcache extension added
    The Zend Optimiser+ opcode cache has been added to PHP5.5 as the new OPcache extension.
  9. foreach now supports non-scalar keys. For non-scalar keys, an Iterator must be used as they cannot occur in native PHP array.
  10. Apache 2.4 handler supported on Windows
  11. Improvements to GD Library.

Friday, 19 June 2015

New features of PHP 5.4 with Examples



Following are 5.4 new features.

  1. Traits has been added. For Example:
     //Create traits
    trait HttpRequest 
    { 
          public function getHttpResponse($url, $port) 
          { 
    
                return $response; 
          } 
    } 
    
    
    //Use the traits
    
    class ABC_API 
    { 
          use HttpRequest; // use our trait 
    
          public function getResponse($url) 
          { 
                return $this->getHttpResponse($url, 80); 
          } 
    } 
  2. Short array syntax has been added. For Example:
    $array = [1,2,3,'Web technology','Experts Notes'];
  3. Function array dereferencing has been added. For Example:
    function fruits(){
    return array(0=>'Apple', 1=>'Banana', 2=>'Mango',3=>'Orange');
    }   
    echo fruits()[2]; //Mango 
  4. Closures now support $this.
  5. Class member can access on instantiation has been added. For Example:
    class test{
      function fruits(){
      return array(0=>'Apple', 1=>'Banana', 2=>'Mango',3=>'Orange');
      }
    }
    print_r((new test())->fruits());
    
    Output:
    Array
    (
        [0] => Apple
        [1] => Banana
        [2] => Mango
        [3] => Orange
    )
  6. Class::{expr}() syntax is now supported. For Example:
    class test{
    static  function newMethod(){
    echo "called function";
    }
    }  
    
    $method = 'newMethod';
    // this works 
    test::$method(); 
    
    // and this works 
    test::{'newMethod'}();
    
  7. Binary number format has been added, e.g. 0b001001101.
  8. Improved parse error messages and improved incompatible arguments warnings.
  9. The session extension can now track the upload progress of files.
  10. Built-in development web server in CLI mode.




Following functions are deprecated in PHP 5.4.

  1. mcrypt_generic_end()
  2. mysql_list_dbs()