One of the beautifull feature of programming languages came out in PHP 7 that now we also can have function return type in PHP like we have in other languages like Java, C, C# etc..
So PHP 7 adds support for return type declarations.
Now we can force a function to return a specific type of data.
In PHP 7 we have following function return types:
int : Integer data type.
1
2
3
4
5
6
|
<?php
function testInt() : int{
return 5;
}
var_dump(testInt());
?>
|
float : Float data type.
1
2
3
4
5
6
|
<?php
function testFloat() : float{
return 5.2;
}
var_dump(testFloat());
?>
|
array : Array data type.
1
2
3
4
5
6
|
<?php
function testArray(): array {
return [];
}
var_dump(testArray());
?>
|
bool : Boolean data type.
1
2
3
4
5
6
|
<?php
function testBoolean() : bool{
return 1;
}
var_dump(testBoolean());
?>
|
string: String data type.
1
2
3
4
5
6
|
<?php
function testString() : string{
return 'coding 4 developers';
}
var_dump(testString());
?>
|
Class/Interface name : Name of the class.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
class class1{}
class class2{
public function __construct() {
}
function get_class_1_object() :class1{
return new class1;
}
}
$x = new class2;
$y = $x->get_class_1_object();
var_dump($y);
|
1
2
3
4
5
6
7
8
9
|
<?php
interface A {
static function make(): A;
}
class B implements A {
static function make(): A {
return new B();
}
}
|
self : Instance of the same class. This can only be used if function is created under any class.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
class test1{
}
class test2{
function testSelf() : ? self{
return new test2();
}
}
$obj = new test2();
var_dump($obj->testSelf());
?>
|
callable : Valid PHP callable.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
class test{
static function testCallable(){
return 1;
}
}
function test():callable{
$x = new test;
return array($x , 'testCallable' );
return 1;
}
var_dump(is_callable(test()));
?>
|
In PHP 7.1 void return type has been introduced. Functions declared with return type void can use an empty return statement. Keep in mind you also can't return null if you are declaring function with return type void.
void: return nothing.
1
2
3
4
5
6
7
8
9
10
|
<?php
function add($a, $b): void
{
$c = $a+$b;
return;
}
$a = 1;
$b = 2;
var_dump(add($a, $b));
|