gpt4 book ai didi

php - 从 php 函数中检索额外变量

转载 作者:行者123 更新时间:2023-11-30 01:05:12 26 4
gpt4 key购买 nike

我试图从数据库中的费用表返回三个参数。这是我的函数,位于 users.php

public function expense($username, $i) {
$query = $this->db->prepare("SELECT * FROM `expenses` WHERE `username`= ?");
$query->bindValue(1, $username);
$i=1;
$totalSpent=0;

try{

$query->execute();
foreach ($query as $row) {
print "Username: " . $row['username'] .", Amount: ". $row['amount'] ."$, Type: ". $row['type'] .", Date: ". $row['date'] .", Comment: ". $row['comment'] . ".<br>";
$totalSpent+=$row['amount'];
$i++;
}

return $query->fetch();
return $i;
return $totalSpent;

} catch(PDOException $e){

die($e->getMessage());
}

}

我已在 view.php 文件中进行设置,以检索与用户名匹配的列,如下所示:

        <?php
$users->expense($username);
?>

我的问题是我向该函数发送一个参数 ($username),但根据该函数,我还想检索 $i (即实际上是行数)和 $totalSpent ,它是金额行的总数。

查看行工作正常,但我尝试了多种方法,但无法检索 $i$totalSpent 变量。

我对此很陌生,所以如果我做错了事情,我期待有关如何使我的代码更好的建议。

最佳答案

您只能从函数调用中返回一项,因此请将该项设为数组或对象:

return array(
'results' => $query->fetch(),
'i' => $i,
'totalSpent' => $totalSpent
);

访问使用:

$returnValues = $users->expense($username);
$userQueryResult = $returnValues['results'];

但是当您使用类时,您还可以使用这些值设置公共(public)类属性,然后只需从方法外部访问对象属性

public function expense($username, $i) {
$query = $this->db->prepare("SELECT * FROM `expenses` WHERE `username`= ?");
$query->bindValue(1, $username);
$i=1;
$totalSpent=0;

try{

$query->execute();
foreach ($query as $row) {
print "Username: " . $row['username'] .", Amount: ". $row['amount'] ."$, Type: ". $row['type'] .", Date: ". $row['date'] .", Comment: ". $row['comment'] . ".<br>";
$totalSpent+=$row['amount'];
$i++;
}

$this->queryResult = $query->fetch();
$this->i = $i;
$this->totalSpent = $totalSpent;

} catch(PDOException $e){

die($e->getMessage());
}

}

并使用访问

$users->expense($username);
$userQueryResult = $users->queryResult;

等等

后者将是一种更干净的方法

关于php - 从 php 函数中检索额外变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768691/

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