我正在使用命令行来执行类中的方法。但是我不断收到以下消息:
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
答案 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();'