gpt4 book ai didi

php - 我如何使用 PHP 从 foreach 循环返回超过 1 个值

转载 作者:行者123 更新时间:2023-12-02 06:38:50 24 4
gpt4 key购买 nike

这是我的功能

function GetUser($id)
{
global $pdo;
$stmt = $pdo->prepare('SELECT lname,fname,mi FROM user WHERE id = :id LIMIT 1');
$stmt->execute(array(':id'=>$id));
foreach($stmt as $name){
$lname = $name['lname'];
$lname = $name['fname'];
$mi = $name['mi'];
}

return //what to put here?
}

这是我使用该函数的代码

include 'function.php';
$names = GetUser($_SESSION['id']);
//what's next?

如何从函数中检索 $lname、$fname 和 $mi?需要任何帮助和建议。谢谢:)

最佳答案

首先不要使用 global keyword ,但注入(inject)您需要的变量。第二,你为什么不返回一个数组?:

function getUser($pdo, $id)
{
$stmt = $pdo->prepare('SELECT lname,fname,mi FROM user WHERE id = :id LIMIT 1');
$stmt->execute(array(':id'=>$id));

$result = array();
foreach($stmt as $name){
$result['lname'] = $name['lname'];
$result['fname'] = $name['fname'];
$result['mi'] = $name['mi'];
}

return $result;
}

$result = getUser($pdo, 1);
var_dump($result);

请注意,这只会返回最后 结果。如果你想要这一切:

function getUser($pdo, $id)
{
$stmt = $pdo->prepare('SELECT lname,fname,mi FROM user WHERE id = :id LIMIT 1');
$stmt->execute(array(':id'=>$id));

return $stmt->fetchAll();
}

$result = getUser($pdo, 1);
var_dump($result);

另请注意,我已让您的函数名称以普通字母而非大写字母开头。 “正常”命名约定是类以大写字母开头,但函数/方法以普通大写字母开头。

如果您想根据第一个解决方案检索信息,您会这样做:

echo $result['lname'];

如果您想根据第二种解决方案检索信息,您可以这样做:

echo $result[0]['lname'];

关于php - 我如何使用 PHP 从 foreach 循环返回超过 1 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131031/

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