如何从命令行执行类中的方法
2022-08-30 17:27:28
基本上,我有一个PHP类,我想从命令行进行测试并运行某个方法。我确信这是一个基本问题,但我从文档中遗漏了一些东西。我知道如何运行一个文件,显然但不确定如何运行那个文件,这是一个类并执行一个给定的方法php -f
基本上,我有一个PHP类,我想从命令行进行测试并运行某个方法。我确信这是一个基本问题,但我从文档中遗漏了一些东西。我知道如何运行一个文件,显然但不确定如何运行那个文件,这是一个类并执行一个给定的方法php -f
这将工作:
php -r 'include "MyClass.php"; MyClass::foo();'
但是除了测试之外,我没有看到任何理由。
我可能会使用call_user_func来避免对类或方法名称进行标记。输入可能应该使用一些验证的kinf,但是...
<?php
class MyClass
{
public function Sum($a, $b)
{
$sum = $a+$b;
echo "Sum($a, $b) = $sum";
}
}
// position [0] is the script's file name
array_shift(&$argv);
$className = array_shift(&$argv);
$funcName = array_shift(&$argv);
echo "Calling '$className::$funcName'...\n";
call_user_func_array(array($className, $funcName), $argv);
?>
结果:
E:\>php testClass.php MyClass Sum 2 3
Calling 'MyClass::Sum'...
Sum(2, 3) = 5