PHP对象无法在语句中调用函数

时间:2017-07-08 17:52:49

标签: php

请指出显而易见的,因为我刚刚开始学习PHP中的OOP。我的班级books包含两个公共功能:一个用于显示请求书表单,另一个用于将书籍详细信息提交到我的数据库。当用户点击ifrequest book按钮时,我会使用两个submit form语句来调用这些函数。

这是我的班级:

class Book
{
    public $title;
    public $author;
    public $id;

    public function SendToDatabase()
    {
        echo "inside SendToDatabase";
    }

    public function Display()
    {
        echo "<form action='' method='post'>
    Title: <input type='text' name='title'><br>
    Author: <input type='text' name='author'><br>
    <input type='submit' name='submitBook' value='submit'>
    </form>";
    }

}

这是我使用按钮调用函数的代码(在同一个文件中)。因此,永远不会调用SendToDatabase()函数。当我合并if语句时,我能够使它工作,但是按钮将无法正常工作。我有点困惑,因为我认为对象的范围在if语句中是相同的。我真的很感激有人指出我的错误。欢呼声。

echo "<form action='' method='post'><input type='submit' name='submit' value='Request Book'></form>";
$request = $_POST['submit'];
$submit  = $_POST['submitBook'];
if ($request) {
    $book = new Book();
    $book->Display();
}

if ($submit) {
    $book->SendToDatabase();
}

1 个答案:

答案 0 :(得分:6)

您需要定义两个案例中$book的内容,因此请从第一个if块中获取分配:

$book = new Book();
if ($request) $book->Display();
if ($submit) $book->SendToDatabase();