gpt4 book ai didi

PHP:如何避免在特定情况下使用 extract()

转载 作者:行者123 更新时间:2023-11-29 12:01:59 25 4
gpt4 key购买 nike

我对 PHP 很陌生,并且到处都看到不建议使用提取函数。我正在从 mysql 表中获取数据来填充网站的一部分。因此我不知道该表可以有多少行。

所以我使用 extract 函数,它为每行提供一个数组数组。为了创建一些有助于每个字段“回显”的变量,我使用以下代码:

$query = "SELECT * FROM example";
$result = mysqli_query($link,$query);
$num = mysqli_num_rows($result);
$gharray = mysqli_fetch_all($result,MYSQLI_ASSOC);
$arrayrows = array_keys($gharray);
foreach ($arrayrows as $arrayrow) {
$i = $arrayrow;
};
foreach ($gharray[$i] as $ghimg) {
extract ($gharray[$i], EXTR_PREFIX_ALL, "img"."$i");
};

它完成工作并创建变量,例如:$img1_title、$img1_description、$img2_title等(这将在注释中提到,以便在回溯时这些变量有解释。

但我想知道这是否是正确的用法,或者是否有更简单、更干净的解决方案来达到相同的结果。或者,如果有行数限制(即六行),您会采取不同的做法吗?

我们会对发布到数据库的所有内容进行清理,因此应该不会出现任何问题。 (另外,管理员是唯一可以在那里发布信息的人)。无论如何,我们将不胜感激。

最佳答案

您可以使用list (),但您需要一个枚举数组。检查 PHP 文档:

$row = [];
$row[0] = 123;
$row[1] = 'data';
list($id, $data) = $row;

http://php.net/manual/en/function.list.php

基本上 list($id, $data) = $row; 的作用是:

$id = $row[0];
$data = $row[1];

它更短,变量更多。

关于PHP:如何避免在特定情况下使用 extract(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com