我们如何在类中使用$ _POST变量

时间:2013-07-09 13:31:35

标签: php

我刚学习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();
?>

4 个答案:

答案 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'];
?>

只需使用此方法即可获得结果。