$db = &$arr['db'];
不行吗?应该可以如果不影响原来的,只能用$db = $arr['db'];这是生成新变量并给值

解决方案 »

  1.   

    个人经验 MYSQL查询句柄 无论你怎赋值 还都操作的是这个句柄$query = mysql_query('select * from `news`');$a = $query;$news[] = mysql_fetchAll($a); //函数名称不一定对 深受IDE的毒害虽然操作的是$a 但是$query的指针也向前移动了 可以实验下句柄这个词不一定准确 就是这个意思 在手册里对这类对象有表述 
      

  2.   

    数据库操作已经封装
    $arr['db']是对象的引用
    为简化书写,只是想复制该引用而不影响原来的引用和对象,也不想复制对象。
    我php基础实在是不好
    $db = &$arr['db']; ?
    $db = $arr['db'];??
    还是别的
      

  3.   

    PHP中好象只有变量,所谓对象,可能是指类吧
    按引用的一般常理:
    如果$db = &$arr['db'],则指$db和$arr['db']指向同一值,一个改动,也影响另一个
    但引用后可切断引用,用 unset
    如果$db = $arr['db'],则是复制,双方互不影响不知道对不对
      

  4.   

    楼主说的应该是php的特殊类型----资源资源资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。资源是 PHP 中一种比较特殊的数据类型。“资源”这个词其实并不特指某些特殊类型的数据,事实上,它指的是一种可以维护任何类型数据信息方法的抽象。所有的资源均保存在一个 Zend 内部的资源列表当中。列表中的每份资源都有一个指向可以表明其种类的类型定义的指针。Zend 在内部统一管理所有对资源的引用。直接访问一个资源是不大可能的,你只能通过提供的 API 来对其进行操作。某个资源一旦失去引用,那就会触发调用相应的析构函数。也就是这些变量内容记录的是当前引用资源在Zend内部资源列表中的位置,所以无论是上面2种的那一种,效果都是一样的,不信可以看测试代码!------------------------------------代码-----------------------------------<?php
    $mid = mysql_connect('localhost','root','');
    mysql_select_db('test', $mid);
    $query = mysql_query("show tables;", $mid);if(is_resource($query)) {
    echo('$query is resource');
    }if(is_resource($query)) {
    echo('$query is resource, $query =' . $query);
    echo("\n");
    }$a = $query;if(is_resource($a)) {
    echo('$a is resource, $a ='  . $query);
    echo("\n");
    }$b = &$query;if(is_resource($b)) {
    echo('$b is resource, $b ='  . $query);
    echo("\n");
    }?>
    具体数据库连接自己修改!
      

  5.   

    上面的代码错了,附上正确的!<?php
    $mid = mysql_connect('localhost','root','');
    mysql_select_db('test', $mid);
    $query = mysql_query("show tables;", $mid);if(is_resource($query)) {
    echo('$query is resource');
    }if(is_resource($query)) {
    echo('$query is resource, $query =' . $query);
    echo("\n");
    }$a = $query;if(is_resource($a)) {
    echo('$a is resource, $a ='  . $a);
    echo("\n");
    }$b = &$query;if(is_resource($b)) {
    echo('$b is resource, $b ='  . $b);
    echo("\n");
    }?>
      

  6.   

    考虑你是PHP5还是PHP4 
    如果是PHP5 那么 $db = $arr['db'] 就直接是引用而不是复制
    如果是PHP4 那用 $db = &$arr['db'] 就好了如果你要在PHP5中复制一个对象 要用$$db = clone $arr['db']; 
      

  7.   

    发现写错了$$db = clone $arr['db']; 应该是$db = clone $arr['db']; 
      

  8.   

    &$变量
    or
    &&变量