0

我有两个文件,分别是 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.ini 中使用这些对象。请帮忙。

4

3 回答 3

1

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

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

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

于 2012-07-19T08:53:31.793 回答
0

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

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


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

您的班级将使用 getter 和 setter(“访问器”和“修饰符”)来处理您需要的值 -$address例如。

于 2012-07-19T08:42:29.747 回答
0

首先包括file1.php

然后只需调用实例:

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

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

于 2012-07-19T08:48:56.977 回答