2012-12-13 86 views
1

爲什麼此代碼不會在我的導航中保留選定的項目?在php中選擇了導航項

<?php 
function navItemSelected($pg) 
{ 
    global $pgname; 
    if ($pg == $pgname) 
    { 
    echo "active"; 
    } 
} 
?> 

<!-- ===== NAVIGATION ===== --> 
<div id="navigation"> 
    <div class="wrapper"> 
     <div id="menu"> 
      <ul> 
       <li class="home"><a href="index.php" class="<?php echo navItemSelected('home'); ?>">home</a></li> 
      </ul> 
     </div> 
     </div> 
+1

$ pgname沒有你期望的值,或者你試圖回顯一個函數,它不會返回任何東西,而是運行一個回聲本身。嘗試在調用該函數時刪除回顯。您也可以嘗試打印$ pgname作爲文本,以確保它具有您所期望的值。 – span

回答

2
function navItemSelected($pg){ 
    global $pgname; 
    if ($pg == $pgname){ 
    //echo "active"; Don't echo here 
    return "active"; 
    } 
    } 
+0

很好的答案,但我會建議爲那些可能不會注意到@ user1900715錯誤地調用他的函數的人添加一些更多的說明。 – lifo

+0

@lifo,我正在證明#span的評論(通過展示究竟應該做什麼),在任何編程語言中,當你調用任何函數時,它應該被寫入,以便它期望從調用中獲得一個或多個數據值程序。函數#user1900715寫道沒有返回任何值。只要他的函數更正了#span的回答是適當的。 – Christopher

+0

你誤解了我的評論,我完全理解你的解決方案。這是一個Q/A網站,我只是覺得對於那些可能無法「看到」您的解決方案如何工作的人來說,多一點解釋可能會有很長的路要走。但無論如何,沒有造成任何傷害,這只是一個建議。 +1 – lifo

0

要麼$pgname沒有你所期望的價值,或者你得到一些錯誤,試圖迴音也沒有返回值的函數,而是運行的回聲本身。嘗試在調用該函數時刪除回顯。您還可以嘗試打印$pgname作爲文本以確保它具有您所期望的值。