Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实例之间的PHP类变量_Php_Database_Oop_Object - Fatal编程技术网

实例之间的PHP类变量

实例之间的PHP类变量,php,database,oop,object,Php,Database,Oop,Object,最近我开始尝试做更多基于OOP的编程,因为我知道这比过程编程要好,但我有一个可能很简单的问题。如果我想实现一个“tasks”类,其中每个任务都有一个标题、描述、完成的程度以及提交者。我有以下代码来创建该类: class Tasks { public $title; public $description; public $completionPercent; public $contact; public function __construct($ti

最近我开始尝试做更多基于OOP的编程,因为我知道这比过程编程要好,但我有一个可能很简单的问题。如果我想实现一个“tasks”类,其中每个任务都有一个标题、描述、完成的程度以及提交者。我有以下代码来创建该类:

class Tasks
{
    public $title;
    public $description;
    public $completionPercent;
    public $contact;

    public function __construct($title, $description, $completionPercent, $contact)
    {
        $this->title = $title;
        $this->description = $description;
        $this->completionPercent = $completionPercent;
        $this->contact = $contact;
    } 

    public function getTitle()
    {
        return $this->title;
    }

    public function getDescription()
    {
        return $this->description;
    }

    public function getCompletionPercent()
    {
        return $this->completionPercent;
    }

    public function getContact()
    {
        return $this->contact;
    }

    public function setTitle($title)
    {
        $this->title = $title;
    }

    public function setDescription($description)
    {
        $this->description = $description;
    }

    public function setCompletionPercent($completionPercent)
    {
        $this->completionPercent = $completionPercent;
    }

    public function setContact($contact)
    {
        $this->contact =$contact;
    }

}

我的问题是,如果我创建了一个任务,然后像关闭浏览器一样稍后访问它,然后在几天后当我对它进行了更新时返回到它,我如何存储它并重新访问它。我了解数据库并经常在我当前学习的网站中使用它们,但我不认为在数据库中存储来自类的信息是合乎逻辑的,因为我假设您可以跳过类并使用数据库。我读到您可以序列化或将XML/json存储在一个文件中,并以这种方式访问该类,但我同样不明白,如果您可以将一个文件读入一个数组并以这种方式使用它,那么为什么需要该类。我知道OOP很重要,但我仍在努力让它深入到我可以开始定期使用类的地方,这样我就可以熟悉它们并作为一名程序员取得进步。我确信网上有很多关于他的阅读资料,但我一直在寻找关于在会话变量中存储类变量的资料,这并不是我想要的。让我知道如果有什么我可以澄清的,我知道当我第一次做这个类的时候,我会做一些像
$task1=newtask(…)
但是在关闭浏览器并重新登录后,我仍然无法访问
$task1
正确吗?我不能只做
$task1->getTitle()那么如何重新初始化该类

类和对象可以帮助您将代码和逻辑组织到自包含的单元中。仅此而已。这是非常重要的。它没有解决存储或其他任何问题

是的,您仍然会将对象的数据存储在数据库中,然后再次从数据库中读取并再次创建对象实例

input → new Task(..) → store object data in database
read data from database → new Task(..) → display on website

为什么这比直接使用数据库中的数组更好?因为它允许您更好地组织代码。即使对象的生命周期仅为几分之一秒,在该时间段内,使用该对象的所有代码都可以编写得更加优雅,最重要的是类型安全,因为它清楚地定义了该对象的外观。数组是一种非类型的抓取包,随着应用程序变得越来越复杂,很难使用它。尤其是重构只使用数组的代码非常困难。

类和对象可以帮助您将代码和逻辑组织成自包含的单元。仅此而已。这是非常重要的。它没有解决存储或其他任何问题

是的,您仍然会将对象的数据存储在数据库中,然后再次从数据库中读取并再次创建对象实例

input → new Task(..) → store object data in database
read data from database → new Task(..) → display on website

为什么这比直接使用数据库中的数组更好?因为它允许您更好地组织代码。即使对象的生命周期仅为几分之一秒,在该时间段内,使用该对象的所有代码都可以编写得更加优雅,最重要的是类型安全,因为它清楚地定义了该对象的外观。数组是一种非类型的抓取包,随着应用程序变得越来越复杂,很难使用它。尤其是重构只使用数组的代码是非常困难的。

你说得对,你需要将这些信息存储在某个地方,正确的位置是数据库。所以,问题是:若可以直接将类“Task”保存在db中,那个么为什么需要使用并创建它呢。因为您希望基于“类和对象”构建应用程序,所以不要像您所说的那样使用过程编程。因此,您需要使用对象并为所有内容创建类,以便充分利用OO应用程序

因此,您的应用程序应该基于类/对象,这就是您和其他一些开发人员将要使用的。现在您只需要将该对象中的数据保存到数据库中。这意味着,您需要为此引入一些附加层。一个很好的例子是ORM。它将对象映射并转换为db。通常每个类在db中都有自己的表,类中的每个字段在db中都有自己的列(这仅适用于需要保存在db中的类)

关键是,您可以像使用任何其他对象一样轻松地使用应用程序中的对象,而不知道它们应该如何保存在db(或其他地方)中。您需要做的只是:

$task->save();

就这样。该任务将保存在数据库中。

您是对的,您需要将此类信息存储在某个位置,而正确的位置是数据库。所以,问题是:若可以直接将类“Task”保存在db中,那个么为什么需要使用并创建它呢。因为您希望基于“类和对象”构建应用程序,所以不要像您所说的那样使用过程编程。因此,您需要使用对象并为所有内容创建类,以便充分利用OO应用程序

因此,您的应用程序应该基于类/对象,这就是您和其他一些开发人员将要使用的。现在您只需要将该对象中的数据保存到数据库中。这意味着,您需要为此引入一些附加层。一个很好的例子是ORM。它将对象映射并转换为db。通常每个类在db中都有自己的表,类中的每个字段在db中都有自己的列(这仅适用于需要保存在db中的类)

关键是,您可以像使用任何其他对象一样轻松地使用应用程序中的对象,而不知道它们应该如何保存在db(或其他地方)中。您需要做的只是:

$task->save();

就这样。该任务将保存在db中。

您的问题一点也不具体,我不太明白您需要什么,无论如何,我建议您阅读一些内容,也许您应该阅读