这是一个错误的程序,但是我找不到错误的地方,哪位大神路过帮帮忙~~~~~~~
<?php
//抽象基类User
abstract class User
{
protected $name = NULL;
//构造函数
function User($name)
{
$this->name = $name; //将属性name设置成创建对象时传入的参数
}
//获取属性$name
function getName()
{
return $this->name; //返回name属性
}
//是否具有浏览权限
function ViewAccess()
{
return "NO";
}
//是否具有编辑权限
function EditAccess()
{
return "NO";
}//是否具有删除权限
function DeleteAccess()
{
return "NO";
}
//是否具有管理权限
function ManageAccess()
{
return "NO";
}
}
//普通用户
class Client extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "YES";
}
}
//管理员
class Administrator extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "YES";
}
//重写EditAccess函数,对普通用户授予修改权限
function EditAccess()
{
return "YES";
}
//重写DeleteAccess函数,对普通用户授予删除权限
function DeleteAccess()
{
return "YES";
}
}
//维护员
class Supporter extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "YES";
}
//重写EditAccess函数,对普通用户授予修改权限
function EditAccess()
{
return "YES";
}
//重写DeleteAccess函数,对普通用户授予删除权限
function DeleteAccess()
{
return "YES";
}
//重写ManageAccess函数,对普通用户授予管理权限
function ManageAccess()
{
return "YES";
}
}
//工厂类
class Factory
{
//静态成员属性
private static $users = array("Simon"=>"Client","Eliaine"=>"administrator","Bob"=>"Supporter");
//创建对象的成员方法
static function Create($name)
{
//根据成员属性的不同创建不同的对象
switch (self::$users[$name])
{
case "Client";
return new Client($name);
case "Administrator";
return new Administrator($name);
case "Supporter";
return new Supporter($name);
}
}
}
//一个存放用户名的数组
$users = array("Elaine","Simon","Bob");
//对于每个用户分析其权限
foreach($users as $user)
{
$obj = Factory::Create($user);
echo $obj->getName()."的权限:\n";
echo "浏览: ".$obj->ViewAccess()."\n";
echo "修改:".$obj->EditAccess()."\n";
echo "删除:".$obj->DeleteAccess()."\n";
echo "管理:".$obj->ManageAccess()."\n";
}
?>