2011-09-26 122 views
2

我很茫然,我花了幾個星期閱讀網站後,試圖瞭解我能做些什麼。問題在於,自從我有一個網站以來,我一直在學習,這主要是困難的。 ;)語法錯誤,意外的'}'

如果你能幫助我,我將不勝感激。

此錯誤(在此情況下53)相關的可溼性粉劑內容/插件/色的小部件/ colorwidgets.php

上方行是:

} 

       <?php } 
       } ?>  
       <div style="background-color:<?php echo $textbgcolor; ?>; color:<?php echo $textfontcolor; ?>; text-align:<?php echo $texthalign; ?>; padding:<?php echo $textpadding; ?>"><?php echo $text; ?></div> 
      <?php if ($themestyle == 'Yes') { echo $after_widget; } ?> 
    </div> 
    <?php 

**本}是在該行在<?php之下。

底下}是:**

/** @see WP_Widget::update */ 
    function update($new_instance, $old_instance) {    
     return $new_instance; 
    } 

**我刪除了},但語法錯誤,意外「}」,當我嘗試訪問我的網站仍然存在,所以我把它放回去。

.............. 然後我將admin添加到URL的末尾,並得到不同的消息。

致命錯誤:類 'ColorWidgets' 在/wp-includes/widgets.php未發現線324

該生產線是(下圖):**

$this->widgets[$widget_class] = & new $widget_class(); 

這之上是:

/**        
* Singleton that registers and instantiates WP_Widget classes.        
*        
* @package WordPress        
* @subpackage Widgets        
* @since 2.8        
*/        
class WP_Widget_Factory {        
    var $widgets = array();       

    function WP_Widget_Factory() {       
     add_action('widgets_init', array(&$this, '_register_widgets'), 100);       
    }       

    function register($widget_class) >{       
     $this->widgets[$widget_class] = & new widget_class();      

最後一行是錯誤行及以下內容是:

}       

function unregister($widget_class) >{       
    if (isset($this->widgets[$widget_class]))      
     >unset($this->widgets[$widget_class]);     
}       

.............

我對於跟着我的職務所需的時間量道歉,我會非常感激的反饋。感謝您的聆聽。 :)

+0

PHP可以針對此問題的熊。隱藏字符可能導致此問題。特別是如果你複製並粘貼示例代碼,說一個PDF文件。我會嘗試的第一件事是不使用複製和粘貼來重新創建文件。只需輸入所有內容。 – samack

+5

任何機會,你可以向我們展示代碼從頭到尾,而不是分成幾塊? –

回答

1

從本質上說,錯誤是說你有比打開的更多的大括號。仔細檢查你的大括號,你可能會發現它們不匹配。

更新:

一次修復一個錯誤。如果您仍然收到「意外」,請在修復該錯誤之前添加其他內容。

4

這個錯誤表明你有更多的關閉障礙。爲了解決這個問題,你必須滾動你的代碼來檢查問題出在哪裏。

下一次,開發時,嘗試在實際填充代碼之前始終添加開始和結束花括號,並嘗試像這樣縮進並格式化代碼,以便將相同錯誤和潛在的其他錯誤/錯誤最小化:

if() 
{ 
    if() 
    { 
     if() 
     { 

     } 
    } 
} 

代替

if(){ 
    if(){ 
     if() 
{ 


     } 
} 
} 

<?php 

if() 
{ 
?> 
<!-- your code--> 
<?php 
} 

?> 

而不是

<?php 

if(){ 
?> 
<!-- your code--><?php} 

?> 

如果你有支持格式化源代碼的編輯器,它也會更好。我爲此使用Netbeans

+1

甚至更​​好地使用'<?php if(...):?>'和<?php endif; ?>或<?php foreach(...):?>和<?php endforeach; ?>當混合PHP與HTML。它會提高可讀性並使調試更容易。 IDE幫助進行這種調試。 – Fabio

+0

對於在使用html混合php時使用備用條件標記進行sugggestion的+1 – ariefbayu

0

首先,請確保您已將代碼中的所有大括號配對。

其次,如果這不起作用,請檢查是否在代碼中遺漏了一些尾隨分號。如果您的IDE中具有啓用正則表達式的搜索功能以及實施良好的書寫風格,則可以輕鬆完成此操作。

我會先檢查第二個,但這只是我的情況。

祝你好運,

維克多