Lab 03: Named Args & Intersection Types
Step 1: Named Arguments — Basics
<?php
function createUser(
string $name,
int $age = 0,
string $role = 'user',
bool $active = true
): string {
$activeStr = $active ? 'active' : 'inactive';
return "$name / age=$age / role=$role / $activeStr";
}
// Traditional positional
echo createUser('Alice', 30, 'admin', true) . "\n";
// Named — skip optionals, change order
echo createUser(name: 'Alice', role: 'admin') . "\n";
echo createUser(age: 25, name: 'Bob') . "\n";
// Mix positional + named (positional must come first)
echo createUser('Charlie', role: 'editor', active: false) . "\n";Step 2: Named Arguments with Built-in Functions
Step 3: Intersection Types (PHP 8.1)
Step 4: DNF Types (PHP 8.2)
Step 5: The never Return Type
never Return TypeStep 6: First-Class Callable Syntax (PHP 8.1)
Step 7: Array Unpacking with String Keys (PHP 8.1)
Step 8: Capstone — Type-Safe Transformation Pipeline
Summary
Feature
Syntax
PHP Version
Last updated
