Core Concepts
Functions
Topic 6 of 13
PHP
<?php
// Named function with type hints + return type
function add(int $a, int $b): int {
return $a + $b;
}
// Default parameters
function greet(string $name, string $prefix = "Hello"): string {
return "$prefix, $name!";
}
// Variadic functions
function sum(int ...$nums): int {
return array_sum($nums);
}
echo sum(1, 2, 3, 4); // 10
// Named arguments (PHP 8) โ order-independent
greet(prefix: "Hey", name: "Nishu");
// Anonymous function (closure)
$double = function(int $n): int {
return $n * 2;
};
// Arrow function (PHP 7.4) โ auto-captures outer scope
$multiplier = 3;
$triple = fn($n) => $n * $multiplier;
// Higher-order functions
$nums = [1, 2, 3, 4, 5];
$evens = array_filter($nums, fn($n) => $n % 2 === 0);
$doubled = array_map(fn($n) => $n * 2, $nums);
$total = array_reduce($nums, fn($c, $n) => $c + $n, 0);
// First-class callables (PHP 8.1)
$fn = strlen(...); // Closure from built-in
echo $fn("hello"); // 5