PHP 7#
What happened to 6? It was a faied project due to the ropsed ntroduction of unicode
Most important feature#
Speed More requests a second, less memory usage
New features#
Type declarations#
Weak typed - does not require declaration of data type.
PHP 5 you were limited to class
and array
. It would not allow scalar types.
in PHP 7 scalar types were allowed:
- int
- float
- string
- bool
It is non-strict
. ie. If you pass a string
into a function requiring a float the string will be converted as best it can. Eg. “1 week” becomes 1
strict
types will throw a fatal error.
php 7 also allows return type declarations:
declare(strict_types=1);
function getTotal(float $a, float $b): int{
return $a + $b;
}
In the above example a fatal error
will be thrown. You have to cast to int
first.
strict
mode is per file, not inphp.ini
- Integers will be
widened
into floats by adding.0
Error handling#
Handling fatal errors would not invoke the error handler and would stop the script.
For production servers that causes white screen of death
Operators#
Spaceship operator: <=>
Checks each component individually…
2 < 1 reutrn -1
2 = 1 return 0
2 > 1 return 1
If set or, returns left operand if not null, else returns right.
$name = $firstName ?? "Guest";
//You can also stack - returns first not null
$name = $firstName ?? $MyName ?? "Guest";
CString#
Cryptographically secure sudo-random number generator - secure way of generating random data
Interface to operating systems random number generator
Usage passwords and password salts
random_bytes
- return random bytes
random_int(1, 20)
- return random integer
Unicode Support#
For emoji
and international characters
Removed Features#
*