php和node的差异(2)-- 函数形参引用_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > php和node的差异(2)-- 函数形参引用

php和node的差异(2)-- 函数形参引用

 2017/11/22 11:04:21  xieye  程序员俱乐部  我要评论(0)
  • 摘要:$a=[1,3];functionchange_arr($arr){$arr[0]=200;}change_arr($a);var_dump($a);php打印结果如下:array(2){[0]=>int(1)[1]=>int(3)}也就是说,php并没有改变原有的实际参数。如果想改变,有两种方法,第一种,改变函数定义$a=[1,3];functionchange_arr(&$arr){//只有这里加一个传引用符号$arr[0]=200;}change_arr($a)
  • 标签:PHP 函数
class="php" name="code">
$a = [1,3];
function change_arr($arr) {
    $arr[0] = 200;
}
change_arr($a);
var_dump($a);

php打印结果如下:
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(3)
}


也就是说,php并没有改变原有的实际参数。
如果想改变,有两种方法,
第一种,改变函数定义
$a = [1,3];
function change_arr(&$arr) { // 只有这里加一个传引用符号
    $arr[0] = 200;
}
change_arr($a);
var_dump($a);


第2种:用返回值
$a = [1,3];
function change_arr($arr) {
    $arr[0] = 200;
    return $arr;
}
$a = change_arr($a);
var_dump($a);


上面这两种写法,都会导致改变。
结果如下:
array(2) {
  [0]=>
  int(200)
  [1]=>
  int(3)
}


===================================================================
===================================================================

这里开始node
var arr=[1,3];
function change_arr(arr2){
    arr2[0] = 200;
}

change_arr(arr);
arr.map((n)=>{
    console.log(n);
})


好家伙,直接修改实参。
下面是打印结果
200
3


所以node编程得小心~

前文链接:
php和node的差异(1)-- 作用域

发表评论
用户名: 匿名