我有一个名为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);
}
}
}
然后我希望能够在私人获取票价功能中检查结果: -
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函数中使用它?
非常感谢任何帮助!
答案 0 :(得分:3)
如果两个函数属于同一个类,只需执行
$tour_fare = self::getTourFare();
否则你可以使用
从课外调用它$tour_fare = TariffFareController::getTourFare();
请注意,getTourFare()
函数中$dbh = null;
行将从不执行',因为您在执行之前从返回它。我还要说,我认为该行无用,因为$dbh
变量无论如何都会超出范围。
答案 1 :(得分: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);
}
}
}