我正在使用PHP编写客户管理系统,以便脱机使用(即在客户端计算机上)。我曾考虑过使用Java或C#,但得出的结论是,让浏览器为我完成所有布局并让公司在他们的计算机上安装wamp更容易。为什么我不能将一个实例变量声明为PHP中的一个对象数组?
通过这个接口,他们也将能够管理代理商(即销售人员绕过他们的区域获取公司订单,如果有人不知道)。这是我将在这篇文章中用来演示我遇到的问题的部分。
基本上我有4类 - AgentPages,AgentList,AgentDetails和AgentForm。 AgentForm将有两种模式 - 编辑和新建。 AgentPages有一个名为getPages的函数,它返回其他3个类的实例数组。但它不喜欢“新”关键字。
我的代码如下所示(仅用于AgentPages类):
<?php
require_once("AgentList.php");
require_once("AgentDetails.php");
require_once("AgentForm.php");
class AgentPages {
public function __construct() {
echo "Constructed";
}
private $pages = array("List" => new AgentList(), "Details" => new AgentDetails(), "Form" => new AgentForm());
function getPages() {
return $this->pages;
}
}
?>
我使用NetBeans IDE 6.9启用了PHP,以及(因为你可能已经猜到了)我已经安装WAMP的服务器。在PHP版本5.3下,netbeans调试器告诉我“解析错误:解析第20行的C:\ wamp \ www \ CustomerApp_v2 \ Agents \ AgentPages.php中的错误”。在5.2.11中,它提到了关于该行意外的T_NEW的一些事情。在第20行之前,我已经对此做了大量的评论,但是我可以告诉你第20行是$ pages的声明。目前,我对每个类都有一个空的构造函数。
我也曾尝试下面的行,而不是第20行:
$AgentList = new AgentList();
这不工作要么 - 我得到同样的错误。根据我所看到的所有教程,我的代码没有错 - 我可能只是忽略了一些明显的东西。
有没有人有任何想法我做错了什么?在此之前,我已经完成了很多PHP面向对象的工作,但是最后一次触及它的时间是2年前。
在此先感谢。
问候,
理查德
我有这方面的一个问题:这是对实例化类对象数组在构造函数中的最佳实践,或可在此以任何其它类的方法来完成? (例如:我有一个叫'calculateInvoiceTotal') – kmancusi 2016-02-28 19:06:59