创建连接脚本:我应该使用 unset 吗?

Create a connection script: should I use unset?

我正在从这篇很棒的文章中学习,特别是关于如何在 PHP 中创建连接脚本: https://phpdelusions.net/mysqli/mysqli_connect

但是,这篇文章在 2 个地方对 unset 的定义不同。我很困惑。 例如,文章开头写着:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $db = new mysqli($host, $user, $pass, $dbname, $port);
    $db->set_charset($charset);
} catch (\mysqli_sql_exception $e) {
     throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
}
unset($host, $dbname, $user, $pass, $charset); // we don't need them anymore

最后:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    require __DIR__.'/db_credentials.php';
    $db = new mysqli($host, $user, $pass, $db, $port);
    $db->set_charset($charset);
} catch (\mysqli_sql_exception $e) {
     throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
} finally {
    unset($host, $db, $user, $pass, $charset);
}

那么,是哪一个?我应该使用 unset 吗?如果是,如何...使用或不使用关键字 finally?

顺便说一句,很棒的文章。

在这两种情况下 unset 行为相同 - 释放数据库连接的参数。

有什么不同?仅语法。

finally 是一种确保即使发生错误,finally 块内的代码也会 运行.

的方法

只有trycatch的代码会以同样的方式运行。捕获后 unset 将 运行.

两者都正确。

您可以阅读有关 finally here.

的细微差异