we know that print function always return 1, so when using it like this:
$arr = [10, 20, 30, 40];
$arr2 = array_map(fn ($num) => print $num, $arr);
The output will be like this:
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
)
because the returned value will be assigned to array elements,
but when I use it like this:
$var = fn ($name, $age) => print "Hello my name is $name and I'm $age years old";
$var("Ahmad", 22);
The output will be:
//Output: Hello my name is Ahmad and I'm 22 years old
shouldn’t the output here be 1?
>Solution :
The value is still 1
.
If you dump the value you will get 1
:
var_dump($var("Ahmad", 22));
//Return int(1)
However the result of your arrow function is not used and you just print a message. That’s the reason why you think the value of print is different.