我刚学习PHP课程,所以我正在搞乱它。我只是尝试从用户获取值并使用类显示它。但是,当我尝试在类中使用$_POST
变量时,它会显示错误。
以下是代码:
<form action="classess.php" method="POST" >
<b>Enter the rate : </b>
<input type="text" name="price" />
<input name="submit" type="submit" value="Click" />
</form>
<?php
class rating
{
public $rate = $_POST['price'];
public function Display()
{
echo $this -> rate;
}
}
$alex = new rating;
$alex ->Display();
?>
答案 0 :(得分:19)
您不能在属性定义中包含语句。改为使用构造函数:
class Rating {
public $rate;
public function __construct($price) {
$this->$rate = $price;
}
public function display() {
echo $this->rate;
}
}
$alex = new Rating($_POST['price']);
$alex->display();
ClassNames
通常用CapitalCase编写,methodNames
用camelCase编写。 display()
函数最好实际return
费率,而不是echo
。您可以使用返回值执行更多操作。答案 1 :(得分:2)
这是您正确的HTML部分
<form action="classess.php" method="POST" >
<b>Enter the rate : </b>
<input type="text" name="price" />
<input name="submit" type="submit" value="Click" />
</form>
这是您更正的PHP部分
<?php
class Rating
{
public $rate;
public function __construct() {
$this->$rate = $_POST['price'];
}
public function display()
{
echo $this -> rate;
}
}
$alex = new rating;
$alex ->Display();
?>
让我解释一下......
public function __construct() {
$this->rate = $_POST['price'];
}
正在设置你的变量,即构建类..
public function display()
{
return $this->rate;
}
这个类里面的函数实际上得到了var $ rate的值
$alex = new rating;
echo $alex->display();
然后只需初始化类并使用该函数。
答案 2 :(得分:1)
您正试图在错误的位置分配值。您需要在构造函数中指定值。
为什么不这样做?
<form action="classess.php" method="POST" >
<b>Enter the rate : </b>
<input type="text" name="price" />
<input name="submit" type="submit" value="Click" />
</form>
<?php
class rating
{
var $rate;
function rating($price)
{
$this->rate = $price;
}
public function Display()
{
echo $this->rate;
}
}
$alex = new rating($_POST['price']);
$alex->Display();
?>
这样,您可以在创建对象时初始化值。它为您提供了更多的灵活性。
答案 3 :(得分:0)
<?php
class rating
{
public $rate;
}
$alex = new rating;
$alex->rate=$_POST['price'];
?>
只需使用此方法即可获得结果。