我试图在类中获取函数的值。
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()函数中的全局变量但不起作用。我试着把它变成班级中的公共变量,但也失败了。
感谢您的指导。
答案 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 />";
}