0

我有遵循这种结构的代码:

class someClass
{
    private static $pay = 0;

    //something like this...
    public static function run()
    {
        if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1")
        {
            self::$pay = 50000;
        }
    }

    public static function benefits()
    {
        self::$pay = 50000 * 1.30;
        benefits = self:$pay;
        echo benefits;
    }
}

然后我尝试像这样调用福利......

someClass::benefits();

但它总是设置为零。当 if 语句中的条件满足时,它永远不会改变。

我在这里做的事情显然是错误的吗?我没有收到任何错误。

谢谢您的帮助。

4

6 回答 6

1

我真的不认为您想echo从该类函数中获取值。那我强烈推荐returning。然后如果你立即回显它们,很好,但你不应该从函数中回显。如果没有看到它是如何使用的,那将是我的第一个猜测。

于 2012-11-02T16:38:34.883 回答
1

在福利函数中,如果您打算将其用作局部变量,则福利应该是 $benefits。

于 2012-11-02T16:39:38.720 回答
1

试试下面的代码:

<?php
class someClass
{
    private static $pay = 0;

    //something like this...
    public static function run()
    {
        if ($_SESSION['title']== "whatever" and $_SESSION['rank'] == "1")
        {
            self::$pay = 50000;
        }
    }

    public static function benefits()
    {
        self::$pay = 50000 * 1.30;
        $benefits = self::$pay;
        return $benefits;
    }
}

echo someClass::benefits();
?>
于 2012-11-02T16:47:08.743 回答
0

您正在使用benefits它,就好像它是恒定的(在 php 中不允许分配)-您可能是指$benefits. 将您的代码更改为:

    self::$pay = 50000 * 1.30;
    $benefits = self::$pay;
    echo $benefits;
于 2012-11-02T16:38:19.970 回答
0
public static function benefits()
{
    self::$pay = 50000 * 1.30;
    echo self::$pay;
}

应该是你要找的

于 2012-11-02T16:42:51.683 回答
0

你必须改变

 benefits = self:$pay;

 benefits = self::$pay;  
于 2012-11-02T16:43:39.123 回答