こんにちは私はPHPでOOPプログラミングを学んでいて、(正しいOOP構造で)Navigationクラスを作成しようとしていましたが、どういうわけかそれを機能させることができません。クラスが間違っているのか、間違った方法で呼んでいるのかわかりません。誰かが見て、これを手伝ってくれませんか:)以下の私のコードを参照してください
ナビゲーションクラス:
<?php
class Navigation implements navigationInterface{
public $menu = null;
public $name = null;
public $klasse = null;
public $items = null;
public function __construct($name, $klasse) {
$this->name = $name;
$this->klasse = $klasse;
}
public function addChild(NavigationItem $item)
{
$this->items[] = $item;
}
public function getName() {
return $this->name;
}
public function getClass() {
return $this->klasse;
}
public function display() {
$menu = '<nav class="' . $this->getName() . '"><ul>';
foreach ($this->items as $item) {
$menu.= $item->display();
}
$menu .= '</ul></nav>';
return $menu;
}
}
?>
および私のナビゲーションアイテムクラス(アイテムを追加するため)
<?php
class NavigationItem implements NavigationItemInterface {
public $menu = null;
public function setMenuItem($items) {
$this->menuItem = $items;
}
public function getMenuItem() {
return $items;
}
public function display() {
return '<li><a class="' . $this->getClass() . '" href="index.php?page=' . $this->getMenuItem() . '.php">' . $this->getMenuItem() . '</a></li>';
}
}
?>
これが私がクラスと呼ぶべきだと思った方法です
<?php
$menu = new Navigation("navigation", "mainmenu");
$items = new NavigationItem();
$menu_items = array("home", "about", "playground");
$items->setMenuItem($menu_items);
$menu->addChild($items);
echo $menu->display();
?>