PHP4 OOP 스타일을 코딩하고 있습니다. 이것은 매우 구식입니다. 사용하지 마십시오
var
, 사용public
,protected
,private
.$this->title = $rowmenu[title]
여기서는title
상수 (따옴표 없음)로 사용됩니다. 적절한 :$this->title = $rowmenu['title']
, 다음 과 동일$rowcategories[title]
"SELECT * FROM $db"
이 올바른지? 아니면SELECT * FROM menu WHERE xxx='" . $db . "'
조회가 실패하면 오류를 포착합니까?
개선하려면 PHP 디자인 패턴과 코드 스타일도 살펴 봐야합니다!
-------------------PHP 코드를 따라보십시오
<?
class Menu {
var $title;
var $url;
function setMenu($db) {
$mydbMenu = new myDBC();
$resultmenu = $mydbMenu->runQuery("SELECT * FROM `$db`");
$resultmenurows = mysqli_num_rows($resultmenu);
$this->title = array();
$this->url = array();
while ($rowmenu = $mydbMenu->runFetchArray($resultmenu)) {
$this->title[] = $rowmenu['title'];
$this->url[] = $rowmenu['url'];
}
}
function getTitle($ind) {
return $this->title[$ind];
}
function getUrl($ind) {
return $this->url[$ind];
}
}
?>
그리고 HTML
<div id="categories">
<ul>
<?
$catmenu = new Menu();
$catmenu->setMenu('category');
$i = 0;
while ($catmenu->getTitle($i)) {
echo '<li><a href="' . ROOT_URL . $catmenu->getUrl($i) . '">' . $catmenu->getTitle($i) . '</a></li>';
$i++;
}
?>
</ul>
</div>
<div id="navigation">
<ul>
<?
$navmenu = new Menu();
$navmenu->setMenu('navigation');
while ($navmenu->getTitle($i)) {
echo '<li><a href="' . ROOT_URL . $navmenu->getUrl($i) . '">' . $navmenu->getTitle($i) . '</a></li>';
$i++;
}
?>
</ul>
</div>
출처
https://stackoverflow.com/questions/22008799