我目前正在学习php,而且我正在测试oop和classes。多次调用函数 - 无法重新声明类 - php
我的代码是:
<?php
require('user.php');
$user = new User($username);
$projects = $user->getProjects();
for ($n = 0; $n<count($projects); $n++) {
echo "<li>";
echo "<a id=\"menu_pages\" href=\"\"><img src=\"../images/types/project.png\"/>" . $projects[$n]->name . "</a>";
echo "<ul>";
$items = $user->getItems($n);
for ($i = 0; $i<count($items); $i++) {
echo "<li><a href=\"../\"><img src=\"../images/types/" . $items[$i]->type . ".png\"/>" . $items[$i]->name . "</a></li>";
}
echo "</ul>";
echo "</li>";
}
?>
,我得到的错误: 致命错误:不能联机重新声明类项目在/home/ios/public_html/classes/item.php 2
我发现它的,因为我在循环中使用
$items = $user->getItems($n);
。因为如果我将其更改为
$items = $user->getItems(1);
它的工作原理。无论如何我都无法解决这个错误。
请帮助:)
在此先感谢。
的方法:
function getItems($parent,$type = NULL) {
$items = array();
$username = $this->uname;
$userid = $this->getId($username);
include('classes/config.php');
if ($type != NULL) {
}
require_once('classes/item.php');
foreach ($pdo->query($sql) as $row) {
$instance = new Item();
$instance->name = $row['name'];
$instance->id = $row['id'];
$instance->type = $row['type'];
$instance->parent_id = $row['parent_id'];
$items[] = $instance;
unset($instance);
}
function getProjects() {
$projects = array();
$username = $this->uname;
$userid = $this->getId($username);
include('classes/config.php');
require_once('classes/project.php');
foreach ($pdo->query($sql) as $row) {
$proj = new Project();
$proj->name = $row['name'];
$proj->id = $row['id'];
$projects[] = $proj;
unset($proj);
}
return $projects;
}
编辑:
它仍然没有改变与它的工作。代码通过没有错误,但现在应该在第一个下是第二个,第一个是空白。看到我的逻辑中的任何问题?
编辑该帖子。它仍然无法改变它。代码通过没有错误,但现在应该在第一个下是第二个,第一个是空白。看到我的逻辑中的任何问题? – willium 2010-10-31 08:42:59
不知道'first'和'second'是什么,但看到编辑答案 - 我纠正了你的getItems()方法,也许现在它会按预期工作 – 2010-10-31 08:57:38
我添加了你的改变。我得到一个分析错误:语法错误,意外的';',期待T_FUNCTION在第89行上的/home/ios/public_html/classes/user.php(该类的最后一行是:?>) – willium 2010-10-31 09:09:24