通过PHP引用传递数据库连接

前端之家收集整理的这篇文章主要介绍了通过PHP引用传递数据库连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是数据库连接是否应该通过引用或值传递?

对我来说,我特别质疑一个PHPMysqL的连接,但我认为它适用于所有的数据库.

我听说在PHP中将变量传递给函数或对象时,它被复制到内存中,因此立即使用两倍的内存.我也听说,只有对值进行了更改才被复制(例如从数组中添加/删除的键).

数据库连接中,我会认为在函数中正在改变,因为查询可以改变最后一个插入的id或num行的内容. (我想这是另一个问题:像连接中存储的num行和insert id这样的东西,还是将实际的调用返回数据库?)

那么,如果连接通过引用或值来传递,内存或速度是否重要? PHP 4 vs 5有差异吗?

// $connection is resource
function DoSomething1(&$connection) { ... }
function DoSomething2($connection) { ... }
PHP资源是一种已经是引用的特殊类型.通过值或通过引用明确地传递它将不会有所不同(即它仍然是参考).您可以在PHP4下自行检查:
function get_connection() {
  $test = MysqL_connect('localhost','user','password');
  MysqL_select_db('db');
  return $test;
}

$conn1 = get_connection();
$conn2 = get_connection(); // "copied" resource under PHP4

$query = "INSERT INTO test_table (id,field) VALUES ('','test')";
MysqL_query($query,$conn1);
print MysqL_insert_id($conn1)."<br />"; // prints 1

MysqL_query($query,$conn2);
print MysqL_insert_id($conn2)."<br />"; // prints 2

print MysqL_insert_id($conn1); // prints 2,would print 1 if this was not a reference

猜你在找的PHP相关文章