对象引用的疑问 $db = &$arr['db'];不行吗?应该可以如果不影响原来的,只能用$db = $arr['db'];这是生成新变量并给值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 个人经验 MYSQL查询句柄 无论你怎赋值 还都操作的是这个句柄$query = mysql_query('select * from `news`');$a = $query;$news[] = mysql_fetchAll($a); //函数名称不一定对 深受IDE的毒害虽然操作的是$a 但是$query的指针也向前移动了 可以实验下句柄这个词不一定准确 就是这个意思 在手册里对这类对象有表述 数据库操作已经封装$arr['db']是对象的引用为简化书写,只是想复制该引用而不影响原来的引用和对象,也不想复制对象。我php基础实在是不好$db = &$arr['db']; ?$db = $arr['db'];??还是别的 PHP中好象只有变量,所谓对象,可能是指类吧按引用的一般常理:如果$db = &$arr['db'],则指$db和$arr['db']指向同一值,一个改动,也影响另一个但引用后可切断引用,用 unset如果$db = $arr['db'],则是复制,双方互不影响不知道对不对 楼主说的应该是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");}?>具体数据库连接自己修改! 上面的代码错了,附上正确的!<?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");}?> 考虑你是PHP5还是PHP4 如果是PHP5 那么 $db = $arr['db'] 就直接是引用而不是复制如果是PHP4 那用 $db = &$arr['db'] 就好了如果你要在PHP5中复制一个对象 要用$$db = clone $arr['db']; 发现写错了$$db = clone $arr['db']; 应该是$db = clone $arr['db']; &$变量or&&变量 伪静态 php能画拓扑图吗? 各位兄弟帮忙看看我这个伪静态和泛域名在IIS在怎么设置,有APACHE下的配置文件 又没头绪了~~愁 (分析UChome) 网站服务器端编程语言可以实现哪些功能 phpwind能支持多少个版块 php的兼容性 最近我研究 全文搜索引擎的心得(二) 关于mp3在线播放 要说PHP支持oracle8i,需要如果配置? php 页面跳转慢的问题 动态加载php_gd2.dll、php_iconv.dll出错
$arr['db']是对象的引用
为简化书写,只是想复制该引用而不影响原来的引用和对象,也不想复制对象。
我php基础实在是不好
$db = &$arr['db']; ?
$db = $arr['db'];??
还是别的
按引用的一般常理:
如果$db = &$arr['db'],则指$db和$arr['db']指向同一值,一个改动,也影响另一个
但引用后可切断引用,用 unset
如果$db = $arr['db'],则是复制,双方互不影响不知道对不对
$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");
}?>
具体数据库连接自己修改!
$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");
}?>
如果是PHP5 那么 $db = $arr['db'] 就直接是引用而不是复制
如果是PHP4 那用 $db = &$arr['db'] 就好了如果你要在PHP5中复制一个对象 要用$$db = clone $arr['db'];
or
&&变量