<?php
abstract class file
{
private $pid;
private $uid;
public function __construct($pid,$uid)
{
$this->pid = $pid;
$this->uid = $uid;
}
public function valid()
{
if($_SESSION['level']<$this->pid)
{
return true;
}
else
return false;
}
public function allow()
{
return "This is all right!";
}
}
?>
<?php
// put your code here
include("../file.php");
session_start();
class android extends file
{
public function __construct($pid,$uid)
{
parent::__construct($pid, $uid);
}
}
$uid = $_SESSION['id'];
$pa = new android(1,$uid);
if($pa->valid())
echo $pa->allow();
else
echo "<h1>No permission<h1>"
?>
上面的类是android类,上面的那个是文件..现在当android扩展(继承)文件类时,它意味着它拥有所有方法。但是当我尝试运行程序时,它表示未定义的变量android :: allow() 我不明白,因为我已经在文件类中定义了allow()函数,因此android类也应该继承该方法。 请帮助..提前致谢。
答案 0 :(得分:0)
根据http://www.php.net/manual/en/language.oop5.abstract.php,
定义为抽象的类可能无法实例化
如果您的文件类没有任何抽象方法,请不要将其声明为抽象,否则请避免调用构造函数;)