开发者

Retrieving array values from within a class

开发者 https://www.devze.com 2023-04-06 19:05 出处:网络
Working on my first OOP app and I am having some trouble accessing the values of an array returned by a public function within my class. Here is the function -

Working on my first OOP app and I am having some trouble accessing the values of an array returned by a public function within my class. Here is the function -

//Process开发者_C百科 new transaction
    public function addTransaction($amount, $payee, $category, $date, $notes) {
        global $db;
        //Check to see if payee exists in Payee table
        $checkPayee = $db->prepare("SELECT * FROM payees WHERE name = ?");
        $checkPayee->execute(array($payee));
        $checkPayeeNum = $checkPayee->fetchColumn();
        $payeeDetails = $checkPayee->fetch();
        if ($checkPayeeNum < 1) {
            $insertPayee = $db->prepare("INSERT INTO payees (name, cat) VALUES(?, ?)");
            $insertPayee->execute(array($payee, $cat));
        } else {
            if ($payeeDetails['cat'] == "") {
                $updatePayee = $db->prepare("UPDATE payees SET cat=? WHERE name=?");
                $updatePayee->execute(array($cat, $payee));
            }
        }
        //Process the transaction
        $proc = $db->prepare("INSERT INTO transactions (amount, payee, cat, date, notes) VALUES (?, ?, ?, ?, ?)");
        $proc->execute(array($amount, $payee, $cat, $date, $notes));
        //Prepare array for JSON output
        $todaysTrans = $this->fetchDailyTotal();
        $weeklyTotal = $this->fetchWeeklyTotal();
        $accountBalance = $this->balanceAccount();
        $jsonOutput = array("dailyTotal" => $todaysTrans, "weeklyTotal" => $weeklyTotal, "accountBalance" => $accountBalance);
        return $jsonOutput; 
    }

Instantiating the object is not the issue, trying to figure out how to access the $jsonOutput array. How would one accomplish this?

Thanks!


// In some other PHP file...
include 'YourClass.php';

$yourObject = new YourClass();
$returnedArray = $yourObject->addTransaction(...);

// Access the returned array values
echo 'Daily Total: ', $returnedArray['dailyTotal'], "\n";
echo 'Weekly Total: ', $returnedArray['weeklyTotal'], "\n";
echo 'Account Balance: ', $returnedArray['accountBalance'], "\n";

Also, for what it's worth, it's very confusing for you to be returning a PHP array called $jsonOutput, as it's not JSON encoded, which is what most developers will expect it to be. If you're wanting it to be JSON encoded, use json_encode() (see here for more info).

0

精彩评论

暂无评论...
验证码 换一张
取 消