Some New Tips About PHP7

profile picture

Some New Tips About PHP7

It's been several months that PHP 7 was released, and the latests frameworks already upgraded to be compatible with this version.

Laravel Homestead, the OOTB server environment is now up to date as well, so all your new projects will run on a PHP 7 server. In addtion to be radically faster (from 25% to 70%), you are now able to do some new cool stuff. Here are some of them:

The spaceship operator <=>

Because it looks like a spaceship!

It is basically a combination of <, > and ==

// Exemples
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

In $a <=> $b, if $a is less than $b than the result will be -1. If it's equal, the result will be 0. And if its greater than, the result will be 1.

Good way to remember it: in the same order of <``=``>, you get -1, 0, 1.

Null Coalesce Operator ??

When you want to access a variable, but if this variable is not set you want to set a default value, you would do something like that:

if (isset($_GET['username'])) {
     $username = $_GET['username'];
} else {
     $username = 'Mydnic';
}

// or this
$username = $_GET['username'] ? $_GET['username'] : 'Mydnic';

A bit of a overkill, right ? Well now you can simply do this:

$username = $_GET['username'] ?? 'Mydnic';

You just have to remember ?? which is kinda nice.

You can even chain it !

$username = $_GET['username'] ?? $_GET['post'] ?? 'Mydnic';

Isn't that just great ??

Group use declarations

I'm not a big fan of this one because I think this is quite ugly, but it's still nice to have in some occasions.

The purpose is to import more than one class from the same namespace with only one use declaration. Here's what it looks like:

// Before PHP 7
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

// After PHP7
use some\namespace\{ClassA, ClassB, ClassC as C};

Simpoly notice the brackets and you're good to go

Source: php.net

Scalar Type Hinting

And finally, the most important...

If you are exclusively familiar with PHP, you probably wonder "what the heck is type hinting ?". Well it's pretty simple actually. The goal is to declare the type of your function parameters, and so return values that are of a specific type, which can be integer, string, boolean, float.

The main goal is to prevent programming mistakes, like unintentionally making calculation with strings and integer mixed up..

Now, type hinting was already allowed before, but it was restricted to classes, arrays and callables.It means you were able to do that:

// Before PHP 7
public function doSomething(array $arrayOfUsers) { // here "array" is a type hint
     // $arrayOfUsers is necessarily an array
}

In PHP 7 the Scalar Types (integers, strings, booleans, floats) can be used as type hints as well. It works like this:

declare(strict_types=1);
function foo(): int {
    return 1;
}

about me

profile picture

I consider myself as an IT Business Artisan. Or Consultant CTO. I'm a self-taught Web Developper, coach and teacher. My main work is helping and guiding digital startups.

more about me

follow me

newsletter

A weekly email with the latests articles

support my work

Start trading on binance
  • BTC

    BTC

    18SY81ejLGFuJ9KMWQu5zPrDGuR5rDiauM

  • ETH

    ETH

    0x519e0eaa9bc83018bb306880548b79fc0794cd08

  • Monero

    XMR

    895bSneY4eoZjsr2hN2CAALkUrMExHEV5Pbg8TJb6ejnMLN7js1gLAXQySqbSbfzjWHQpQhQpvFtojbkdZQZmM9qCFz7BXU

2024 © My Dynamic Production SRL All rights Reserved.