Back
The Futuristic Advanced PHP - Part 2
Published On: September 02, 2020
#technical
In this series on What's New in PHP 7, we first discussed about major features of the latest PHP version 7+. And now in this second post, I will list down major improvements.
-
Arrays as constants
define('APP_DIRS', array('app', 'incl', 'lib'));
-
Unicode codepoint Escape Syntax
- Requires double-quoted string + escape syntax
-
"\u{ codepoint }"
-
Uniform variable syntax
$name = 'car'; $car = array('name' => 'BMW', 'year' => 2014); echo $$name['name']; // PHP 5: Warning: Illegal string offset 'name' // PHP 7: BMW`
-
Grouped imports with use()
require_once('constants.php'); require_once('database.php'); require_once('plurals.php'); // PHP 7`\ use App\Library\{Constants, Database as DB, Plurals}`
-
Catchable exceptions and errors The errors which were not catchable in PHP 5 are now possible using new error sub classes. Follow the below Error Hierrachy classes, please note Error & Exception classes are different, so use it wisely.
- Throwable
-
Error
- ArithmeticError
- DivisionByZeroError
- AssertionError
- ParseError
- TypeError
-
Exception
- LogicException
- RuntimeException
PS: One cannot create a subclass of throwable because it is an interface by both Error and Exception, not an actual class.
-
Integer division with intdiv()
// Before echo (int)(5/2); // 2 echo (float)(5/2); // 2
// After echo intdiv(5, 2); // 2
In the above example, Before - we typecast the value into int or float.
Also, Technically for both int and float conversion the division results into floating-point number then after it converts into int or float, also you may be surprised that PHP float is bad in precision. Whereas, in intdiv just return int value.