我有两个文件,比如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