-2

我想知道为什么下面的代码片段的输出是 0(零)?谁能澄清为什么下面的代码输出为零。

<?php
function a($number)
{
  return (b($number) * $number);
}

function b(&$number)
{
  ++$number;
}

echo a(5); // output 0(zero) ?
?>
4

2 回答 2

2

您永远不会从函数返回任何值,并且您正在尝试echo返回值。

function b(&$number)
{
    return ++$number;
}

请注意,这是一个通过引用获取参数的函数的愚蠢示例,因为您没有对原始值的引用5。像这样的东西会更合适:

function b( &$number) {
    ++$number;
}

$num = 5;
b( $num);
echo $num; // Prints 6
于 2013-05-05T05:21:29.530 回答
0

函数名是 b,但你调用的是 a...

此外,您正在回显一个不返回值的函数。这意味着您正在回显一个非初始化变量。

您必须返回一个值:

    return ++$number;

或直接回显变量:

    $number = 5;
    b($number);
    echo $number;
于 2013-05-05T05:25:16.533 回答