对php中的不同文件使用相同的对象


use same object for different files in php

我有两个文件,比如file1.php和file2.php。我有一个名为form的php文件,其中定义了类表单。我在file1.php中创建了一个对象,如下所示:

require_once('form.php');
$x=$_GET['field'];
$form = new Form("", ""); 
$personal = new Block("");
$address = new TextArea("address", $x, "", 3, 30); 
$personal->add($address);
$form->add($personal);
echo $form;

现在我想在另一个文件file2.php中使用这个对象$form和$personal,如下所示:

$personal = new Block("");
$name = new Text("name",$x);
$personal->add($name);
$form->add($personal);
echo $form;

如何在php中使用这些对象。请帮忙。

如果将一个PHP文件包含到另一个文件中,则没有问题,因为两者中的代码都将合并到包含代码的范围中。

否则,如果您希望我们在代码中的不同位置重用对象,您可以使用注册表(另请参阅:如何在PHP中测试注册表模式或单例?)来存储实例化的对象。

如果您计划在下一页加载时重用相同的对象,则需要序列化它们,将序列化的对象存储在会话/缓存(或其他地方)中,并在加载下一页后取消序列化。在这种情况下,您还需要一些机制来建立数据库连接或执行其他所需任务(请参阅:__wakeup())。

通常,每次运行脚本时都必须创建一个新的对象实例。

如果没有,可以序列化对象,将其转换为字符串格式,然后在需要时取消序列化,但必须将字符串存储在某个位置。通常只声明一个新类更容易。


在大多数类似的情况下,您将使用对象来修改数据库中的值。创建新实例时(在重新加载页面上),它会查看数据库以获取修改后的值。这样,同一个实例就不必在重新加载时持久存在。

您的类将使用getter和setter("accessors"answers"修饰符")来处理所需的值,例如$address

首先包含file1.php

然后只调用实例:

require_once('file1.php');
$name = new Text("name",$x);
$personal->add($name);
$form->add($personal);
echo $form;

请记住,$form$personal的实例已经在file1.php

中创建