我可以在php中调用switch语句中的函数吗?

我可以在php中调用switch语句中的函数吗?,php,Php,不能在switch语句中调用函数吗?当我尝试执行以下操作时,会收到未定义函数通知 class MyClass { function myfunction($var) { unset($var); } function checkValue($val) { switch ($val) { case 'hello': myfunction($val);

不能在switch语句中调用函数吗?当我尝试执行以下操作时,会收到未定义函数通知

class MyClass {
    function myfunction($var)
    {
        unset($var);
    }


    function checkValue($val)
    {
        switch ($val) {
            case 'hello':
                myfunction($val);
                break;
            case 'goodbye':
                echo "i equals 1";
                break;
         }
    }
}

是的,您的假设是正确的,您需要:

$this->myfunction($val); //Calls the instance method myFunction

我想这可能是因为我在一个对象中,所以它必须是$this->myfunction(),这是完全合法的。但是
myfunction()
实际上已经定义了吗?我的意思是,它是否被正确地从另一个文件中包括?是的,你看。您必须使用
$this->myfunction()
从发布的代码中看不出这是在类定义中(除了结尾的
}
我已经添加了一个示例类名,正如您的评论@Nicola所说。我建议改进这段代码,将缩进改为制表符,而不是空格-这样可以更容易地排列所有内容。您复制粘贴了吗?如果您有输入错误,我会测试您的示例,但我的开发服务器会这样做wn:/我在多个项目中使用过它。
$this->function_name();
确实有效。我在写答案时没有向函数传递变量,所以我想我应该在回答时放入
$this->myfunction($val);
。我的道歉。