以下のコード スニペットの出力が 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;