2010-07-22 181 views
0

使用面向对象的方法,我试图打电话给在同一类功能的公共职能,但它抛出一个错误:Call to undefined function h()函数调用的函数抛出未定义功能错误

PHP:

class Name { 
    . .. . 
    public function h($s) 
    { 
    echo htmlspecialchars($s, ENT_QUOTES); 
    } 

    public function formatQuotes($row) 
    { 

    return "<p id=\"ab_quotes\">" . h($row['cQuotes']) . "</p>" 
    . "<p id=\"ab_author\">" . h($row['vAuthor']) . "</p>";    
    } 

} 

我在这里失踪了什么?

+1

提示:使用'''而不是'''所以你不需要任何东西;) – NikiC 2010-07-22 22:01:45

+0

仅供参考,你不需要在问题标题中包含[关键字]。这就是标签的用途。 – Charles 2010-07-22 22:17:12

回答

4

您需要使用$this->来调用同一类中的方法。它不是隐含像它在语言如C++

所以,叫^ h

$this->h($row['cQuotes']); 
+0

我尝试了代码,并且所有在css中的格式都消失了编辑。 – input 2010-07-22 21:37:35

3

您必须使用这种从访问类的任何非静态成员里面

{ 
    return "<p id=\"ab_quotes\">" . $this->h($row['cQuotes']) . 
      "</p>". "<p id=\"ab_author\">" . $this->h($row['vAuthor']) . 
      "</p>";    
} 
+0

+1回答第一(我刚刚回答类似)。你的gorra学习格式化你的代码(4个空格应该做的伎俩):) – 2010-07-22 21:35:08

+0

它只是从@fusions复制:( – Sadat 2010-07-22 21:36:04

+0

请参阅我上面的评论。 – input 2010-07-22 21:37:56

相关问题