Category Archives: General

Spaceship Operator

In PHP 7, a new feature, spaceship operator has been introduced. It is used to compare two expressions. It returns -1, 0 or 1 when first expression is respectively less than, equal to, or greater than second expression.

 <?php
print( 1 <=> 1);print("
");
    print( 1 <=> 2);print("
");
    print( 2 <=> 1);print("
");
?>
  

null coalescing operator

In PHP 7, a new feature, null coalescing operator (??) has been introduced. It is used to replace the ternary operation in conjunction with isset() function. The Null coalescing operator returns its first operand if it exists and is not NULL; otherwise it returns its second operand.

Closure call

Closures are anonymous functions that are declared inline and assigned to a variable. It can be used as a callback for later execution. In PHP 5 it was already possible to bind an object to the scope of the closure as if it was a method.

The “call” method is one of the PHP 7 features that was introduced to simplify the process.

<?php
     /**
      * Closure::call()
      */
     class PHPCode {
         private $foo = 'PHPCode';
     }
     
     $getFooCallback = function() {
         return $this->foo;
     };

     echo $getFooCallback->call(new PHPCode);

Anonymous classes

Anonymous classes are useful for simple one-off objects. With anonymous classes you can define a class and instantiate an object inline.

<?php
 /**
 Anonymous classes
 */ 
 $anonymousClassObject = new class {
     public function test() {
         return "PHPCodez";
     }
 };
 echo $anonymousClassObject->test();