Php 函数不存在,但它确实存在

Php 函数不存在,但它确实存在,php,console,Php,Console,我面临一个问题。我目前面临一个问题:我有一个控制台php脚本,它从用户输入执行一个函数。我有一个名为DefaultModelFactory的类,它有一个静态函数createSchema。当我var\u dump(获取类方法('DefaultModelFactory'))时,我得到以下输出: array(1) { [0]=> string(12) "createSchema" } 用户输入是DefaultModelFactory,createSchema,我将其分解(',',fgets(S

我面临一个问题。我目前面临一个问题:我有一个控制台php脚本,它从用户输入执行一个函数。我有一个名为
DefaultModelFactory
的类,它有一个静态函数
createSchema
。当我
var\u dump(获取类方法('DefaultModelFactory'))
时,我得到以下输出:

array(1) {
[0]=>
string(12) "createSchema"
}
用户输入是
DefaultModelFactory,createSchema
,我将其分解(',',fgets(STDIN))然后我为参数打开一个新的STDIN,我也将其分解为','个字符,然后将这些输入传递到此函数:

function executeCommand($commandName, array $options){
    if(is_array($commandName)){
        if(method_exists($commandName[0],$commandName[1])){

            call_user_func_array(implode('::', $commandName), $options);
        }
        else{
            throw new InvalidArgumentException(sprintf("The function %s::%s does not exist!", $commandName[0], $commandName[1]));
        }
    }
    else{
        if(function_exists($commandName)){
            call_user_func_array($commandName, $options);
        }
        else{
            throw new InvalidArgumentException(sprintf("The function %s does not exist!", $commandName));
        }
    }
}
问题是,异常被抛出。我还检查了php错误:

PHP警告:call\u user\u func\u array()要求参数1为有效回调,类“DefaultModelFactory”没有方法“createSchema”
'在第15行的C:\xampp\htdocs\wwwcapi\console.php中

当您使用console.php时,可以在

查看其完整代码,您将看到:

array(2) {
  [0]=>
  string(19) "DefaultModelFactory"
  [1]=>
  string(13) "createSchema
"
}
注意索引1处的换行符,输入用户点击的内容也会发送到PHP
call_user\u func\u array()
然后尝试执行函数
createSchema\n
,该函数当然不存在。因此,删除换行符和用户可能输入或粘贴的任何其他不需要的空白:


谢谢现在是一种魅力!
explode( ',', trim( fgets( STDIN ) ) );