PHP - Return Type Declarations
PHP allows you to declare the types of values that functions should return, ensuring clarity and type safety
within your codebase. Return type declarations were introduced in PHP 7.0 and support specifying scalar
types (like int
, float
, string
, bool
) as well as
array
and object
, among others. Here’s how you can use return type declarations
effectively in PHP:
Basic Return Type Declarations
Scalar Types
Scalar types include int
, float
, string
, and bool
. You
specify the return type by appending a colon (:
) followed by the type after the closing
parenthesis of the parameter list.
Example:
php<?php
function addNumbers(int $a, int $b): int {
return $a + $b;
}
$result = addNumbers(5, 3); // $result will be of type int
echo $result; // Outputs: 8
?>
void
Type
The void
type indicates that the function does not return any value. Prior to PHP 7.1,
void
was only allowed as a return type for functions.
Example:
php<?php
function logMessage(string $message): void {
// Log the message somewhere
echo "Logged: $message";
}
logMessage("Error occurred."); // Outputs: Logged: Error occurred.
?>
Nullable Return Types
Return types can be nullable by appending a question mark (?
) before the type declaration. This
means the function can return either the specified type or null
.
Example:
php<?php
function findUserById(int $userId): ?string {
if ($userId === 1) {
return "John Doe";
} else {
return null;
}
}
$user = findUserById(1);
echo "User: $user"; // Outputs: User: John Doe
?>
array
and object
Return Types
You can specify that a function returns an array
or an object
by using these type
declarations.
Example with array
:
php<?php
function getNumbers(): array {
return [1, 2, 3, 4, 5];
}
$numbers = getNumbers();
print_r($numbers); // Outputs: Array ( [0] => 1, [1] => 2, [2] => 3, [3] => 4, [4] => 5 )
?>
Example with object
:
php<?php
class User {
public $name;
public $age;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
function createUser(): object {
return new User("John Doe", 30);
}
$user = createUser();
echo "User: {$user->name}, Age: {$user->age}"; // Outputs: User: John Doe, Age: 30
?>
Summary:
Return type declarations in PHP help enforce stricter type checking and provide clearer documentation of expected function behaviors. They improve code readability and maintainability by explicitly defining what type of data a function will return. Use them effectively to ensure your PHP codebase remains robust and easy to understand.