Iwonder为什么下面的代码片段的输出为0(零)?任何人都可以澄清为什么下面的代码输出为零。
<?php
function a($number)
{
return (b($number) * $number);
}
function b(&$number)
{
++$number;
}
echo a(5); // output 0(zero) ?
?>
答案 0 :(得分:2)
您永远不会从函数中返回任何值,并且您尝试echo
返回值。
function b(&$number)
{
return ++$number;
}
请注意,对于通过引用获取其参数的函数,这是一个愚蠢的示例,因为您没有对原始值5
的引用。这样的事情会更合适:
function b( &$number) {
++$number;
}
$num = 5;
b( $num);
echo $num; // Prints 6
答案 1 :(得分:0)
函数名称为b,但您正在调用...
此外,您正在回显一个不返回值的函数。这意味着您正在回显非初始化变量。
您必须返回一个值:
return ++$number;
或直接回显变量:
$number = 5;
b($number);
echo $number;