
php里面存放对象,不能调用用对象的函数
<?phprequire'MyHomework1/myfunction/db_class.php';interfaceMember{functiongetID();fun...
<?php
require 'MyHomework1/myfunction/db_class.php';
interface Member
{
function getID();
function getName();
function getLevel();
}
class Student implements Member
{
private $ID,$name,$level;
public function __construct($ID,$name,$level)
{
$this->ID = $ID;
$this->name = $name;
$this->level = $level;
//echo "student";
}
public function getID() { return $ID; }
public function getName() { return $name; }
public function getLevel() { return $level; }
public function myTeamMate()
{
$id = $this->ID;
$team_mate = array();
$team_table = new SubTable("TEAM");
$team = mysql_fetch_array( $team_table->query("WHERE MemberID = '$id'") );
$team_name = $team['TeamName'];
$team = $team_table->query("WHERE TeamName = '$team_name'");
while ($row = mysql_fetch_array($team))
{
$student = new Student($row['MemberID'],$row['MemberName'],1);
array_push($team_mate,$student);
}
return $team_mate;
}
}
class TA implements Member
{
private $ID,$name,$level;
public function __construct($ID,$name,$level)
{
$this->ID = $ID;
$this->name = $name;
$this->level = $level;
//echo "ta";
}
public function getID() { return $ID; }
public function getName() { return $name; }
public function getLevel() { return $level; }
}
class MemberFactory
{
public static function factory($ID,$name,$level){
if ($level == 1)
return new Student($ID,$name,$level);
else return new TA($ID,$name,$level);
}
}
$student = MemberFactory::factory("50","lujunjie","1");
$a = $student->myTeamMate();
echo sizeof($a);
foreach ($a as $aa){
echo $aa->getID();
}
foreach ($a as $aa){
print_r($aa);
}
?>
我把好多个Student类放到$a里面,这句不执行echo $aa->getID();其他打印出来没错,为什么? 展开
require 'MyHomework1/myfunction/db_class.php';
interface Member
{
function getID();
function getName();
function getLevel();
}
class Student implements Member
{
private $ID,$name,$level;
public function __construct($ID,$name,$level)
{
$this->ID = $ID;
$this->name = $name;
$this->level = $level;
//echo "student";
}
public function getID() { return $ID; }
public function getName() { return $name; }
public function getLevel() { return $level; }
public function myTeamMate()
{
$id = $this->ID;
$team_mate = array();
$team_table = new SubTable("TEAM");
$team = mysql_fetch_array( $team_table->query("WHERE MemberID = '$id'") );
$team_name = $team['TeamName'];
$team = $team_table->query("WHERE TeamName = '$team_name'");
while ($row = mysql_fetch_array($team))
{
$student = new Student($row['MemberID'],$row['MemberName'],1);
array_push($team_mate,$student);
}
return $team_mate;
}
}
class TA implements Member
{
private $ID,$name,$level;
public function __construct($ID,$name,$level)
{
$this->ID = $ID;
$this->name = $name;
$this->level = $level;
//echo "ta";
}
public function getID() { return $ID; }
public function getName() { return $name; }
public function getLevel() { return $level; }
}
class MemberFactory
{
public static function factory($ID,$name,$level){
if ($level == 1)
return new Student($ID,$name,$level);
else return new TA($ID,$name,$level);
}
}
$student = MemberFactory::factory("50","lujunjie","1");
$a = $student->myTeamMate();
echo sizeof($a);
foreach ($a as $aa){
echo $aa->getID();
}
foreach ($a as $aa){
print_r($aa);
}
?>
我把好多个Student类放到$a里面,这句不执行echo $aa->getID();其他打印出来没错,为什么? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询