dongyu9667 2015-09-02 19:22
浏览 45
已采纳

在函数内部分配变量时出错

Can you please take a look at this script and let me know why I am getting the

Undefined variable: step1

error?

<?php

$step1;

function getNums($num1, $num2){
 $diff = $num2 - $num1;
  $steps =[
        round($num1 + $diff/4), 
        round($num1 + $diff/2), 
        round($num1 + $diff*.75), 
        $num2
    ];
 $step1 = $steps[1];
}

getNums(50, 400);
echo $step1;

?>
  • 写回答

2条回答 默认 最新

  • dongmaoluan5719 2015-09-02 19:26
    关注

    The code inside your function is in a different scope than the code running outside of it, which is why you are getting an error about $step1 being undefined - it is being defined outside the function. If you want to be able to refer to it inside your function you will either need to pass it in as an argument to your function by reference or make the variable global.

    Pass by reference

    function getNums( $num1, $num2, &$step1 ){
        // ... your code
    }
    // pass the variable by reference
    getNums( 50, 400, $step1 );
    echo $step1;
    

    Using global

    // accessible globally
    global $step1;
    
    function getNums( $num1, $num2 ){
        global $step1;
        // ... your code, with $step1 accessible
    }
    
    getNums( 50, 400 );
    echo $step1;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?