PHP7

  1. SCALAR TYPE HINTS & RETURN TYPES (RFC)
    <?php
    function add(int $a, int $b): int {
        re
  2. turn $a + $b; } add(1, '2'); Z użyciem strict mode:
    <?php
    declare(strict_types=1); // musi być w 1 linii
    function add(int $a, int $b): int {
        return $a + $b;
    }
    add(1, '2');
    // Catchable fatal error: 
    // Argument 2 passed to add() 
    // must be of the type integer, string given
    
  3. COMBINED COMPARISON OPERATOR, SPACESHIP operator (RFC)
    <?php
    // przed php 7
    uasort($array, function($a, $b){
        return ($a < $b) ? -1 : (($a > $b) ? 1 : 0);
    });
    // od php 7
    uasort($array, function($a, $b){
        return $a <=> $b;
    });
  4. UNIFORM VARIABLE SYNTAX
    (Ujednolicenie składni,  wywołanie funkcji zaraz po jej zdefiniowaniu) 
    (RFC)
    // zagnieżdżenie wywoływania funkcji - funkcje wyższego rzędu
    $apply = function ($fun) {
        return function ($a) use ($fun) {
            return $fun($a);
        };
    };
    
    $add = function ($x) {
        return function ($y) use ($x) {
            return $x + $y;
        };
    };
    
    echo $apply($add)(2)(3);