这是我的功能
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/