【问题标题】:Turning array back into variables PHP将数组转换回变量 PHP
【发布时间】:2016-04-10 18:38:26
【问题描述】:

我已将 17 个变量放入一个数组中,然后对它们运行 mysqli_real_escape_string,因为这比必须为每个变量单独执行要容易得多。

$rescape = array($username, $fname, $lname, $nationality, $landline, $mobile, $email, $nationalid, $passport, $dob, $street, $towncity, $postcode, $country, $country, $favourite, $rentpw);
$rescape = array_map('mysqli_real_escape_string', $rescape);

如果我理解正确,现在转义字符串都存储在$rescape 的数组中。

将它们恢复为单个变量的“最短”方法是什么?

【问题讨论】:

    标签: php arrays escaping


    【解决方案1】:

    您可以使用list

    list($username, $fname, $lname, $nationality, $landline, $mobile, $email, $nationalid, $passport, $dob, $street, $towncity, $postcode, $country, $country, $favourite, $rentpw) = $rescape;
    

    如果您将$rescape 存储为键/值对,您甚至可以使用extract


    请注意,mysqli_real_escape_string 需要将连接的链接作为第一个参数。像这样的:

    $rescape = array_map(function($e) use ($connection) {
        return mysqli_real_escape_string($connection, $e);
    }, $rescape);
    

    或者,如果您使用面向对象风格的 mysqli,则只需

    $rescape = array_map(array($mysqli, 'real_escape_string'), $rescape);
    

    应该可以解决问题。

    【讨论】:

    • $rescape = array_map($connection, 'mysqli_real_escape_string', $rescape); 喜欢这样吗?
    • 我在答案中添加了一个例子
    • 为什么我不需要在示例 2 中的 real_escape_string 上包含 mysqli_
    • 在第一个例子中你有mysqli_real_escape_string($mysqli, $e)。在我的情况下,连接 ($connection) 是否意味着 只是 第一个参数?例如:mysqli_real_escape_string($connection, $e)(我很困惑,因为该函数也使用了$mysqli
    • 是的 - 我重命名它只是为了避免混淆
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2011-08-05
    • 1970-01-01
    • 2011-04-01
    相关资源
    最近更新 更多