【发布时间】:2018-04-16 05:42:54
【问题描述】:
我知道范围在 PHP 和 Javascript 中的工作方式不同。
当我第一次开始学习 Javascript(在学习了几年 PHP 之后)时,我最初并没有意识到在函数外部声明的变量也可以从函数内部访问。
现在(经过几年更多地关注 Javascript),我对如何将 PHP 函数范围变量返回到函数外环境感到困惑。
示例:
$myArray = array();
function addItemsToMyArray($myArray) {
$myArray[] = 'apple';
$myArray[] = 'banana';
$myArray[] = 'coconut';
return $myArray;
}
addItemsToMyArray($myArray);
echo count($myArray); /* Gives 0 */
为什么count($myArray) 给0 而不是3?
【问题讨论】:
-
你需要写
function addItemsToMyArray(&$myArray) -
或者使用返回值:
$myArray = addItemsToMyArray($myArray); -
因为您的函数的参数是您的函数的本地参数,并且不要修改函数的外部范围。如果添加
&,它会告诉PHP 全局写入$myArray,而不是本地写入。反正我是这么理解的。也许有人可以给出更详细的答案?或者更正确?编辑:@AlexBlex 也是对的
标签: php function scope global-variables