techmore.in

PHP - Functions

Functions in PHP allow you to encapsulate reusable pieces of code that can be called and executed multiple times within a script or across different scripts. They improve code organization, readability, and maintainability. Here’s a comprehensive guide to working with functions in PHP:

1. Defining Functions

Functions in PHP are defined using the function keyword followed by the function name and parentheses (), which may include parameters. The function body is enclosed in curly braces {}.

Basic Function Definition

php
<?php function greet() { echo "Hello, World!"; } // Calling the function greet(); // Outputs: Hello, World! ?>

Function with Parameters

You can define functions that accept parameters inside the parentheses.

php
<?php function greetUser($name) { echo "Hello, $name!"; } // Calling the function with an argument greetUser("John"); // Outputs: Hello, John! ?>

2. Returning Values

Functions in PHP can return values using the return statement. You can specify the return type in PHP 7.0 and later versions.

Returning Values from Functions

php
<?php function add($a, $b) { return $a + $b; } $result = add(5, 3); echo "Result: $result"; // Outputs: Result: 8 ?>

Specifying Return Type (PHP 7.0+)

php
<?php function add(float $a, float $b): float { return $a + $b; } $result = add(5.5, 3.2); echo "Result: $result"; // Outputs: Result: 8.7 ?>

3. Function Parameters

PHP function parameters can have default values and can be passed by value or by reference.

Default Parameter Values

php
<?php function greetUser($name = "Guest") { echo "Hello, $name!"; } greetUser(); // Outputs: Hello, Guest! greetUser("John"); // Outputs: Hello, John! ?>

Passing Parameters by Reference

php
<?php function increment(&$number) { $number++; } $a = 5; increment($a); echo $a; // Outputs: 6 ?>

4. Variable Scope

PHP variables have different scopes depending on where they are declared.

Global Variables

Variables declared outside of any function have global scope.

php
<?php $name = "John"; function greet() { global $name; echo "Hello, $name!"; } greet(); // Outputs: Hello, John! ?>

Local Variables

Variables declared inside a function have local scope and are only accessible within that function.

php
<?php function greet() { $message = "Hello, World!"; echo $message; } greet(); // Outputs: Hello, World! // echo $message; // This would cause an error because $message is not defined outside the function ?>

5. Anonymous Functions (Closures)

Anonymous functions, also known as closures, allow you to create functions without a specified name. They are useful for callbacks and can capture variables from the surrounding scope.

Example of Anonymous Function

php
<?php $greet = function($name) { echo "Hello, $name!"; }; $greet("John"); // Outputs: Hello, John! ?>

6. Function Arguments Checking (Type Hinting)

PHP allows type hinting for function parameters, ensuring the correct type of arguments is passed to functions.

Example with Type Hinting

php
<?php function sum(int $a, int $b): int { return $a + $b; } $result = sum(5, 3); echo "Result: $result"; // Outputs: Result: 8 // sum("5", "3"); // This would cause a TypeError since arguments must be integers ?>