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