有什么方法可以将数组元素排序为变量吗



我编写了一个函数,从数据库中读取属性并返回数组中的值:

public function test($username) {
$stmt = $this->con->prepare("SELECT * FROM test WHERE username = ?");
$stmt->bind_param("s",$username);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}

我想把数组元素分成变量。

require_once __DIR__.'/DbOperations.php';
$db = new DbOperations(); 
$file_path =$db->test($_POST['username']);
//var_dump($file_path); 
foreach($file_path as $value){
//echo $value . "<br>";
$i=0;
$i=$i+1;
if ($i=1)
$username=$value;
if ($i=2)
$role=$value;
if ($i=3)
$URL=$value;
}
echo $username. $role.$URL."<br>";

我该怎么做?

您可以使用动态变量名:

foreach ($file_path as $key=>$value) {
$$key = $value;
}

我很难理解为什么这比把它们都分组在一个漂亮的数组中要好,但这可能超出了问题的范围。

您的代码将很困难,因为您在每次迭代中都设置了$i=0,然后在每次if语句中为其分配另一个值。阅读======之间的分配与比较操作的差异。

我认为您正在描述函数extract。它将数组键转换为变量。https://www.php.net/manual/en/function.extract.php

最新更新