访问类和函数之外的变量

时间:2015-06-26 14:53:06

标签: php class variables

我试图在类中获取函数的值。

classes.php

 class luresClass {

  public function lureSelect() {

   global $lureChoice;
    if ($_POST['airtemp'] == 2 && $_POST['watertemp'] == 5) { 
          $lureChoice = 1;
         }
    else {$lureChoice = 0;}

 }   

}

这是需要访问$ lurechoice值的主文件(index.php)。

if (isset($_POST['submit'])) {

$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

    $displayLureChoice = new luresClass(); 
    $displayLureChoice->lureSelect();
    $stmt = $conn->prepare("SELECT * FROM ".$tbl."lure WHERE id = ".$lureChoice."");    
    $stmt->execute();

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
          echo "Lure Choice: ".$row['type']. "<br />Color: " .$row['color']. "<br /><br />";
    }
}

用户从表单中选择某些项目,并返回if / else值。

我已经尝试将$ lurechoice设置为classes.php文件中lureSelect()函数中的全局变量但不起作用。我试着把它变成班级中的公共变量,但也失败了。

感谢您的指导。

1 个答案:

答案 0 :(得分:1)

您不需要使用全局变量,只需在类中设置变量,然后使用函数将其传回:

<强>类

class luresClass {

    public $lureChoice;

    public function lureSelect() {

        if ($_POST['airtemp'] == 2 && $_POST['watertemp'] == 5) {

            $this->lureChoice = 1;
        }
        else {
            $this->lureChoice = 0;
        }
    }  

    public function getLureChoice(){
        return $this->lureChoice;
    } 

}

<强>代码

$displayLureChoice = new luresClass(); 
$displayLureChoice->lureSelect();

$lureChoice = $displayLureChoice->getLureChoice();

$stmt = $conn->prepare("SELECT * FROM ".$tbl."lure WHERE id = ".$lureChoice."");    
$stmt->execute();

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    echo "Lure Choice: ".$row['type']. "<br />Color: " .$row['color']. "<br /><br />";
}