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 (  => 1  => 1  => 1  => 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?
The value is still
If you dump the value you will get
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.