drvc63490 2010-11-23 20:40
浏览 22
已采纳

PHP中的引用和数组

I'm new to programming in general and references in particular. I want to manipulate individual objects in an array by reference, so that I'm not working on mere copies of the objects I wanted to stick into the array. My question is how to do that.

For example, suppose I have these lines of code:

$obj0 = blah;
$obj1 = blah;
$obj2 = blah;
$myArray = array($obj0, $obj1, $obj2);

When I now access and modify $myArray[1], will this be the same as modifying $obj1? Or would I have to be modifying &$myArray[1] instead?

  • 写回答

3条回答 默认 最新

  • dua6992 2010-11-23 20:52
    关注

    As it stands, no you will not alter the initial variables.

    If you wish to do it by reference, you should put those ampersands when you setup the array like so.

    $myArray = array(&$obj0, &$obj1, &$obj2);
    

    Code:

        $a = "cat"; $a1 = "cat";
        $b = "dog"; $b1 = "dog";
        $arrRef = array(&$a, &$b); $arrCopy = array($a, $b);
        $arrRef[0] .= "food"; $arrCopy[0] .= "food";
        $arrRef[1] .= "house"; $arrCopy[1] .= "house";
        echo "a: $a   b: $b <br />";
        echo "a1: $a1   b1: $b1 <br />";
    

    Output:

    a: catfood b: doghouse
    a1: cat b1: dog 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了