问题是数据库连接是应该通过引用还是通过值传递?
对我来说,我特别质疑PHP到MySQL的连接,但我认为它适用于所有数据库.
我听说在PHP中将变量传递给函数或对象时,它会被复制到内存中,因此会立即使用两倍的内存.我还听说只有在对值进行了更改(例如从数组中添加/删除键)后才会复制它.
在数据库连接中,我认为它在函数内被更改,因为查询可能会改变最后一个插入id或num行.(我想这是另一个问题:连接中是否存在num rows和insert id之类的内容,或者实际调用是否回到了数据库?)
那么,如果通过引用或值传递连接,那么内存或速度是否重要?PHP 4对5有什么不同吗?
// $connection is resource
function DoSomething1(&$connection) { ... }
function DoSomething2($connection) { ... }
Run Code Online (Sandbox Code Playgroud) 我有以下形式的代码:
<?php
function doSomething{
//Do stuff with MySQL
$con->tralalala();
}
$con = connectToDatabase;//This would actually be a line or two.
doSomething();
?>
Run Code Online (Sandbox Code Playgroud)
此(类型)代码不起作用,因为doSomething()没有与数据库的连接.谁能解释为什么不呢?我在调用doSomething()之前创建了$ con连接.那么为什么函数表现得好像没有连接?
有没有办法解决这个问题,没有将连接传递给函数,如doSomething($ con)?