0

我有一个名为 TariffFareController 的类,我从数据库中获得了正确的票价,如下所示:-

class TariffFareController {

public static function getTourFare($fieldTour) {

       $pdo = new SQL();
       $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);

       try {

           $query =   "SELECT Fare FROM tbltours
                       WHERE TourName = '$fieldTour'";

           $stmt = $dbh->prepare($query);

           $stmt->execute();

           $result = $stmt->fetchColumn();

           $stmt->closeCursor();

           return $result;

           $dbh = null;

       }

       catch (PDOException $pe) {
           die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
       }

}

}

然后我希望能够在我的私人 get fare 函数中检查结果:-

private static function getFare($int_terminate) {

    // $tour_fare = (the result from getTourFare)

        if ($tour_fare != null) {

            // do something

        }

        else {

        // do something else

        }

    }

我将如何从 getTourFare 获取 $result 并在私有 getFare 函数中使用它?

任何帮助将非常感激!

4

2 回答 2

3

如果两个函数在同一个类中,只需执行

$tour_fare = self::getTourFare();

否则你可以从课堂外调用它

$tour_fare = TariffFareController::getTourFare();

请注意,在getTourFare()函数中,该行将$dbh = null;永远不会被执行,因为您在执行之前从函数返回。我还不得不说,我认为那行是毫无用处的,因为$dbh变量无论如何都会超出范围。

于 2013-03-31T08:30:49.670 回答
0

你可以做一些这样的事情。

通过 getFare 调用 getTourFare,如果返回数据,do 可以处理数据,而不是返回 false 你做任何事情。

class TariffFareController {


private static function getFare() {
    if (self::getTourFare("any_field")) {
        /* Data success */
    } else {
        /* No data */
    }
}
public static function getTourFare($fieldTour) {

   $pdo = new SQL();
   $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass);

   try {

       $query =   "SELECT Fare FROM tbltours
                   WHERE TourName = '$fieldTour'";

       $stmt = $dbh->prepare($query);

       if (!$stmt->execute()) return false;

       if ($stmt->rowCount() > 0) {
           $result = $stmt->fetchColumn();

           $stmt->closeCursor();

           return $result;
       } else {
           return false;
       }

       $dbh = null;

   }

   catch (PDOException $pe) {
       die("Error: " .$pe->getMessage(). " Query: ".$stmt->queryString);
   }

}

}
于 2013-03-31T08:32:16.287 回答