function get(?int $id) : ?MyObject {
// return either a MyObject or null
}
class MyObject
{
protected const SECRET = "yoloswag";
}
function executeAThing() : void
{
// doesn't return anything
}
[$a, $b, $c] = returnsAnArray();
foreach (arrayOfArrays() as [$first, $second]) {}
function doAThingOnASet(iterable $set)
{
// foreach over a thing
// array or Traversable
}
try {
// do something risky
} catch (BadThing | BlackSwanEvent $e) {
// handle these exception types
}
$strlenIsNowAClosure =
Closure::fromCallable('strlen');