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私はあなたがそのクラス関数からの値を望んでいないと本当に思います。その時は強くお勧めreturnします。そして、それらをすぐにエコーする場合は問題ありませんが、関数からそのようにエコーするべきではありません。これがどのように使用されているかを見ずに、それが私の最初の推測になります。

于 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
public static function benefits()
{
    self::$pay = 50000 * 1.30;
    echo self::$pay;
}

あなたが探しているものでなければなりません

于 2012-11-02T16:42:51.683 に答える
0

あなたはbenefitsそれが一定であるかのように使用しています(どの割り当てはphpでは許可されていません)-あなたはおそらくを意味し$benefitsます。コードを次のように変更します。

    self::$pay = 50000 * 1.30;
    $benefits = self::$pay;
    echo $benefits;
于 2012-11-02T16:38:19.970 に答える
0

あなたは変更する必要があります

 benefits = self:$pay;

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