2011-09-26 126 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中具有启用正则表达式的搜索功能以及实施良好的书写风格,则可以轻松完成此操作。

我会先检查第二个,但这只是我的情况。

祝你好运,

维克多