如何使用函数引用的值


How to use value that a function reurned?

我想在函数中使用$bank来选择行ShowDistrict

$sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]' AND bank='$bank' ";

但它不起作用...有什么方法可以做到这一点吗?...提前谢谢。

 class SelectList
 {
   protected $conn;
    public function __construct()
    {
        $this->DbConnect();
    }
    protected function DbConnect()
    {
        include "db_config.php";
        $this->conn = mysql_connect($host,$user,$password) OR die("Unable to connect to the database");
        mysql_select_db($db,$this->conn) OR die("can not select the database $db");
        return TRUE;
    }
    public function ShowBank()
    {
        $sql = "SELECT DISTINCT `bank` FROM `ctable` WHERE 1 LIMIT 0, 30 ";
        $res = mysql_query($sql,$this->conn);
        $bank = '<option value="0">choose...</option>';
        while($row = mysql_fetch_array($res))
        {
            $bank .= '<option value="' . $row['bank'] . '">' . $row['bank'] . '</option>';
        }
        return $bank;
    }
    public function ShowState()
    {
        $sql = "SELECT DISTINCT `state` FROM `ctable` WHERE bank='$_POST[id]'";
        $res = mysql_query($sql,$this->conn);
        $state = '<option value="0">choose...</option>';
        while($row = mysql_fetch_array($res))
        {
            $state .= '<option value="' . $row['state'] . '">' . $row['state'] . '</option>';
        }
        return $state;
    }

    public function ShowDistrict()
    {
        $sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]'";
        $res = mysql_query($sql,$this->conn);
        $district = '<option value="0">choose...</option>';
        while($row = mysql_fetch_array($res))
        {
            $district .= '<option value="' . $row['district'] . '">' . $row['district'] . '</option>';
        }
        return $district;
    }

          public function ShowBranch()
    {
        $sql = "SELECT DISTINCT `bname` FROM `ctable` WHERE district='$_POST[id]'";
        $res = mysql_query($sql,$this->conn);
        $bname = '<option value="0">choose...</option>';
        while($row = mysql_fetch_array($res))
        {
            $bname .= '<option value="' . $row['bname'] . '">' . $row['bname'] . '</option>';
        }
        return $bname;
    }
}
$opt = new SelectList();

正如评论中 deceze 所说,这样做:

$bank = $this->showBank();

showBank()函数返回$bank值。因此,然后将返回值从函数传递到变量$bank然后可以使用。

$this允许您选择类中的函数/变量。

在您的代码中$bank是一个字符串,每次与另一个字符串连接时,它都在 while 循环中。

$bank包含一个字符串,例如

 "<option value='bank1'>bank1</option><option value='bank2'>bank2</option>...";

因此,如果您返回该字符串,它包含非 unnessary 数据

$sql = "SELECT DISTINCT `district` FROM `ctable` WHERE state='$_POST[id]' AND bank='$bank' ";