如果不立即调用php函数,我应该依赖什么?

时间:2014-07-02 19:10:38

标签: php function

我尝试过常规函数和call_user_function,它们在函数调用后到达下一行之前都没有完成执行。人们用什么代替?我应该为我想要运行的每个“功能”包含一个单独的php文件吗?

编辑:

$IDNum = 0;


$restartButtonIDName;

$playButtonIDName;

$audioPlayerIDName;

$MP3AudioSourceIDName;
$OGGAudioSourceIDName;

$resultingTextIDName;

$currentTimeIDName;

$checkOffsetIDName;



call_user_func('setIDNames');



function setIDNames() {

    echo "called setIDNames <br />";

    call_user_func('incIDNums');

    $restartButtonIDName = "restartButton".$IDNum;

    $playButtonIDName = "playButton".$IDNum;

    $audioPlayerIDName = "audioPlayer".$IDNum;

    $MP3AudioSourceIDName = "MP3AudioSource".$IDNum;
    $OGGAudioSourceIDName = "OGGAudioSource".$IDNum;

    $resultingTextIDName = "resultingText".$IDNum;

    $currentTimeIDName = "currentTime".$IDNum;

    $checkOffsetIDName = "checkOffset".$IDNum;


}

function incIDNums(){

    echo "called setIDNums <br />";

    $IDNum += 1;

}

echo $restartButtonIDName." test<br />"; // echos "test" not the resulting name


?>

2 个答案:

答案 0 :(得分:3)

函数内部访问的变量与函数外部的变量或其他函数不同,除非您在函数内部声明了带有global语句的变量。

$IDNum = 0;
incIDNums();
echo $IDNum; // Will echo 1

function incIDNums(){
    global $IDNum;

    echo "called setIDNums <br />";
    $IDNum += 1;

}

它通常被认为是糟糕的风格,严重依赖于全局变量,因为它损害了函数的通用性。该函数应通过参数获取其输入,并使用return将结果作为值发送。如果需要返回多个结果,可以将它们打包成数组,或者使用已更新的参考参数。

答案 1 :(得分:1)

你可能遇到的问题可能是由于变量的范围,请注意函数内部变量的生命周期,直到函数处于活动状态才能对全局变量产生影响,而这些全局变量不需要在函数内部进行全局变量功能如:

function setIDNames() {
    global $restartButtonIDName ,$playButtonIDName ,$audioPlayerIDName ...;//All variables you wanna use saperated by comma.
    //Your code
}