2015-11-03 72 views
0

我有两个函数,它们附在钩子上,并在程序生命周期中的指定点或事件中执行。当我们想要将一个函数调用的某些返回值传递给另一个函数调用时,通过函数和设计,什么才是最好的方法,但是没有重复的函数调用或者污染全局作用域。如何在不重复函数调用或污染全局作用域的情况下从函数返回值?

这里就是我希望的代码有据可查的部分:

/** 
* @array hookparams Hookparams array from both of function calls 
*/ 
$hookparams = []; // initalized empty values 

function hook_FunctionOne() 
{ 
    //do something, than save result in hookparams array 
    $hookparams['key'] = "Foo"; // return? But I can't call FunctionOne once more, and assign return value to temp variable 
} 

function hook_FunctionTwo(array $hookparams) 
{ 
    //do something with returned hookparams array form function, than save result in hookparams array again 
    $hookparams['key'] .= "Bar"; // Result is "FooBar"; 
} 

// Both functions are called here 

run_hook("HookPoint1", "hook_FunctionOne"); 
run_hook("HookPoint2", "hook_FunctionTwo"); 

回答

0

按引用传递参数给函数救了我的day.Here是完整的代码:

/** 
* @array hookparams Hookparams array from both of function calls 
*/ 
$hookparams = []; // initalized empty values 

function hook_FunctionOne(&$hookparams) 
{ 
    //do something, than save result in hookparams array 
    return $hookparams['key'] = "Foo"; // return? But I can't call FunctionOne once more, and assign return value to temp variable 
} 

function hook_FunctionTwo(&$hookparams) 
{ 
    //do something with returned hookparams array form function, than save result in hookparams array again 
    return $hookparams['key'] .= "Bar"; // Result is "FooBar"; 
} 

// Both functions are called here 

echo hook_FunctionOne($hookparams); // First function call 

echo hook_FunctionTwo($hookparams); // Second function call 

echo "<pre>"; 
print_r($hookparams); 
echo "</pre>" 
相关问题