Chapter 11. Type Hints
The most polarizing—and exciting—new feature added in PHP 7.0 is without a doubt the addition of scalar type hints. There have been many RFCs for different variations of this feature over the years, and finally, with PHP 7, we have an RFC that has passed—albeit after numerous revisions and authors. Unfortunately, this issue was so contentious that it even spilled out of the mailing lists into public social networks before the current implementation was accepted.
Scalar type hints aren’t the only new feature related to type hints, however. As you will see in this chapter, we also have return types, strict types, and more.
Scalar Type Hints
Alongside the introduction of a robust object model in PHP 5.0, we also got the first type hints: class/interface hints. The ability to require a function/method parameter was an instanceof a given class or interface.
PHP 5.1 introduced the array type hint, while PHP 5.4 added callable—the ability to type hint on anything that was a valid callback (e.g., closures, function names, etc.).
PHP 7.0 adds the ability to hint on scalar types:
-
bool: Boolean values (i.e.,true/false) -
float: Floating point numbers (e.g.,4.35) -
int: Integer numbers (e.g.,123) -
string: Strings (e.g.,foo)
Example 11-1 shows each of these new hints in use.
Example 11-1. Scalar type hinting a function
functionhinted(bool$a,float$b,int$c,string$c){}hinted(true,4.35,123,"foo");
Coercive Types
By default, PHP 7.0 will use coercive ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access