0

次のように、パブリック関数からプライベート静的関数に変数を送信しようとしています:

public function getAirportFare($fare) {

    $fare2 = 1000;

    return self::getFinalFare($fare, $fare2);

}

に:

private static function getFinalFare($fare, $fare2) {

    $fare = $fare + $fare2;

    $final_fare = ($fare * self::$fare_factor);

    if (self::$str_wait_return == "true") {
        $final_fare = $final_fare * 2;
    }

    if (self::$str_return == "true" && self::$return_date != "false" && self::$return_time != "false") {

        // We need to calc to fare based on the return date and time
        $return_fare = self::getFare(1);

        // Append to final fare
        $final_fare = $final_fare + $return_fare;

    }

    return number_format($final_fare,2);

}

しかし、getFinalFare 関数の $fare2 は未定義ですか? どうすればこの値を渡すことができるのだろうと思っていましたか?

4

1 に答える 1

0

これら2つのメソッドが同じクラスにあるという前提で作業します。そうでない場合はお知らせください。回答を更新します。

あなたがやりたいことは次のとおりです。

public function getAirportFare($fare) {

$fare2 = 1000;

return static::getFinalFare($fare, $fare2);

}

これにより、クラスがリファクタリングまたは名前変更されたかどうかに関係なく、クラス内で静的メソッドが使用されます。

于 2012-11-16T14:17:51.197 に答える