Functions in PHP - GeeksforGeeks

Functions in PHP

Last Updated : 2 Nov, 2026

A PHP function is a reusable block of code that performs a specific task.

  • Functions reduce code duplication and improve reusability.
  • They can accept input values and return results.
  • PHP supports built-in and user-defined functions.
  • Functions can be used for calculations, data processing, and other operations.

Creating a Function in PHP

A user-defined function is declared using the function keyword, followed by the function name and parentheses.

PHP
<?php
function addNumbers($a, $b) {
    return $a + $b;
}

echo addNumbers(5, 10);
?>

In this example, addNumbers() accepts two parameters, $a and $b, and returns their sum. The function is called with 5 and 10 as arguments.

Syntax:

function functionName($param1, $param2) {
    // Code to be executed
    return $result; // Optional
}
  • function: Declares a function.
  • functionName: Specifies the function's name.
  • $param1, $param2: Define parameters that receive input values.
  • return: Sends a value back to the calling code and ends the function's execution.

Calling a Function in PHP

A function is called by using its name followed by parentheses. If the function requires parameters, pass the corresponding arguments inside the parentheses.

PHP
<?php
function sum($a, $b) {
    return $a + $b;
}

echo sum(5, 3);
?>

Here, sum() receives 5 and 3, calculates their sum, and returns 8.

Types of Functions in PHP

PHP functions can be broadly classified into two types.

1. User-Defined Functions

User-defined functions are created by developers to perform specific tasks. They can accept parameters, process data, and return results.

PHP
<?php
function calculateArea($length, $width) {
    return $length * $width;
}

echo calculateArea(5, 3);
?>

The calculateArea() function multiplies the length by the width and returns the result.

2. Built-in Functions

Built-in functions are provided by PHP for common operations such as string manipulation, array processing, date handling, and mathematical calculations.

PHP
<?php
$text = "Hello, World!";

echo strlen($text);
?>

The strlen() function returns the length of the string in bytes.

Common built-in functions include strlen(), str_replace(), array_merge(), count(), and date().

Function Parameters and Arguments

Parameters and arguments allow functions to work with different input values.

  • Parameters: Variables declared in a function definition.
  • Arguments: Actual values passed to a function when it is called.

PHP supports passing arguments by value and by reference.

1. Passing Arguments by Value

By default, PHP passes arguments by value. The function receives a value that it can modify without changing the original variable.

PHP
<?php
function add($x, $y) {
    $x = $x + $y;
    return $x;
}

$a = 5;

echo add($a, 3) . "\n";
echo $a;
?>

The function returns 8, but the original variable $a remains 5 because the parameter $x is passed by value.

2. Passing Arguments by Reference

Passing an argument by reference allows a function to modify the original variable. The parameter is prefixed with & in the function definition.

PHP
<?php
function addByReference(&$x, $y) {
    $x = $x + $y;
}

$a = 5;

addByReference($a, 3);

echo $a;
?>

The function modifies the original variable $a, changing its value from 5 to 8.

Recursive Functions in PHP

A recursive function is a function that calls itself to solve a problem. It generally requires a base case to stop the recursive calls.

PHP
<?php
function factorial($n) {
    if ($n <= 1) {
        return 1;
    }

    return $n * factorial($n - 1);
}

echo factorial(5);
?>

The factorial() function calculates the factorial of a positive integer by multiplying the number by the factorial of the preceding integer. The base case stops recursion when $n is less than or equal to 1.

Best Practices for Writing PHP Functions

  • Use descriptive names: Clearly indicate the function's purpose.
  • Keep functions focused: Perform one specific task per function.
  • Use type declarations: Specify parameter and return types when appropriate.
  • Handle invalid inputs: Validate inputs and throw exceptions when necessary.
  • Avoid global variables: Pass required data through parameters.
  • Return values appropriately: Return results instead of directly printing them when possible.

Also Check:

Comment