Skip to Content
Upgrading to PHP 7
book

Upgrading to PHP 7

by Davey Shafik
October 2015
Intermediate to advanced
25 pages
1h 4m
English
O'Reilly Media, Inc.
Content preview from Upgrading to PHP 7

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
function hinted(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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Mastering PHP 7

Mastering PHP 7

Branko Ajzele
PHP 7: Real World Application Development

PHP 7: Real World Application Development

Doug Bierer, Altaf Hussain, Branko Ajzele
Learning PHP 7

Learning PHP 7

Antonio L Zapata (GBP)

Publisher Resources

ISBN: 9781492048374Errata Page