私が理解したように、PHPのガベージコレクタは、オブジェクトの破壊の世話をします。PHP:このコードはメモリリークの原因になりますか?オブジェクトの参照カウントが0になると
私はPDOオブジェクトを作成し、そのオブジェクトをPDO操作の呼び出しスクリプトに返すデータベース接続用のユーティリティ関数を持っています。
私はこのコードをモバイルクライアントの要求に対応するウェブサーバースクリプトのどこにも置いているので、アプリが公開されたときに詳細を見落としたりメモリリークを起こすことはありません。
ここに問題がありますか? connectDB.phpで
:PHPスクリプトで
function mySQLConnect() {
.....
.....
try
{
$dbh = new PDO($dsn, $user, $password, $options); // Ref Count=1
....
return $dbh;
}
catch (PDOException $e)
{
....
return NULL;
}
}
:事前に
include 'connectDB.php';
try
{
$dbh = mySQLConnect(); // Ref Count =2
....
....
} //Script Stops, Ref Count becomes 0 and memory is freed- or is it?
catch (Exception $e)
{
....
....
}
ありがとう!
それだろうか?試して! –
これについて心配する必要はほとんどありません。 http://blog.ircmaxell.com/2014/12/what-about-garbage.html – Machavity
あまりにも漏れています。私たちは '$ dbh'があなたのコード全体に必要となると仮定しなければなりません。そして、スクリプトがteminationに走ると、それはメモリ不足に洗浄され、それはあなたが常にPDO' 'の**新しい**インスタンスを作成している – RiggsFolly