如何从php类中的关联数组返回值

时间:2019-05-23 09:14:09

标签: php oop

我是PHP的新手,我才刚刚开始寻找自己的方法,但是我很难使用包含foreach()循环的public函数从public关联数组中获取值。 PHP代码封装为一个类,并嵌入到html文件中。显示的html内容没有任何问题,但是PHP部分未返回任何结果。

显示了我一直在尝试使用的代码。我已经通过多个php验证程序检查了代码,没有返回语法错误,但是我显然在代码中缺少了一些预防措施

<?php
class balances {

    public $custBalances = [
        'Customer 1' => 450,
        'Customer 2' => 900,
        'Customer 3' => 0,
        'Customer 4' => 450
    ];

    public function oustandingBalances() {
        foreach ($custBalances as $key => $value) {
            if ($value == 0)
                continue;
            echo "<p>$key is $value.</P>";
        }
    }
}
?>

php应该为客户1,客户2和客户4返回结果。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:-1)

如果要在该类/对象的函数内访问同一类对象的属性,则必须使用$this->propertyName而不是$propertyName。否则,您将尝试获取在函数内部声明的属性,而不是对象的成员。

<?php
class balances {

    public $custBalances = [
        'Customer 1' => 450,
        'Customer 2' => 900,
        'Customer 3' => 0,
        'Customer 4' => 450
    ];

    public function oustandingBalances() {
        foreach ($this->custBalances as $key => $value) {
            if ($value == 0)
                continue;
            echo "<p>$key is $value.</P>";
        }
    }
}
?>

答案 1 :(得分:-1)

使用$ this调用类中的变量。

<?php
class balances {

    public $custBalances = [
        'Customer 1' => 450,
        'Customer 2' => 900,
        'Customer 3' => 0,
        'Customer 4' => 450
    ];

    public function oustandingBalances() {
        foreach ($this->$custBalances as $key => $value) {
            if ($value == 0)
                continue;
            echo "<p>$key is $value.</P>";
        }
    }
}
$test = new balances();
$test->oustandingBalances();
?>

答案 2 :(得分:-2)

您需要在函数“ oustandingBalances”中使用$this->custBalances