调用未定义的方法。无法弄清楚为什么

时间:2014-02-25 18:05:07

标签: php

我已经设置了一个包含一些函数的类。我已将一个单独的php文件包含在主文件中。我设置了一些公共功能,所有功能都正常。我只是去添加一个新的,它抛出一个错误,我无法弄清楚为什么。

if(!class_exists("classBase"))
    {
  class classBase
        {

         public function printName()
         { 
          $name = 'Test Name!';
          return $name;
         }  

  }
}

我是我的单独文件,我正在尝试调用此函数,因为我是文件中的所有其他函数。

<?php $this->printName(); ?>

我尝试在包含文件之前和之后声明函数,但无论出于何种原因,这都会引发错误: Fatal error: Call to undefined method classBase::printName()

我甚至尝试复制一个工作函数,在函数名中附加一个数字,并调用该新函数。但仍然抛出错误。我很困惑为什么它不起作用。

2 个答案:

答案 0 :(得分:3)

您需要初始化该类的实例。在您的示例中:

if(!class_exists("classBase"))
{
  class classBase
  {

         public function printName()
         { 
          $name = 'Test Name!';
          return $name;
         }  

  }
}

$myInstance = new classBase();

$myInstance->printName();

答案 1 :(得分:0)

Face Palm

这该死的尴尬......

我设置了两个localhost测试站点。我正在编辑我未测试的网站上的类文件,并将该函数的调用添加到我正在测试的网站中。因此它抛出错误并且它是正确的,该方法从未被定义。

花了45分钟想知道我做错了什么......

显然我需要离开电脑去吃午饭。