错误:在第1行的命令行代码中调用未定义的函数

时间:2018-05-16 10:20:37

标签: php command-line

我正在使用命令行来执行类中的方法。但是我不断收到以下消息:

Error: Call to undefined function test() in Command line code on line 1

这是我的课程和方法:

class DatasetTest
{
   public function test()
    {
       echo ""worked";
   }

}

这是我的命令行顺序:

$ php -r 'require "DatasetTest.php"; test();'

我也试过了:

$ php -r 'require "DatasetTest.php"; $this->test();'

但得到了以下信息;

Error: Using $this when not in object context in Command line code on line 1

1 个答案:

答案 0 :(得分:1)

除非将对象定义为静态,否则无法在不实例化对象的情况下执行方法。

解决方案#1

class DatasetTest
{
   public static function test()
   {
       echo "worked";
   }

}

还有一个错误,我用双引号纠正了。然后你可以执行

$ php -r 'require "DatasetTest.php"; DatasetTest::test();'

解决方案#2

function test()
{
    echo "worked";
}

然后

$ php -r 'require "DatasetTest.php"; test();'