【问题标题】:Use switch case to call php function使用switch case调用php函数
【发布时间】:2013-12-20 16:39:11
【问题描述】:

我有一个将变量传递给 GET 的 ajax 调用,这可以正常工作,因为 cmets 中的回声看起来很好,但是即使我已将变量作为参数传递,addProduct 函数中的回声也不会得到回声。

 $func = $_GET ['func'];

    $name =  $_GET ['name'];
    $desc = $_GET ['desc'];
    $photo = $_GET ['photo'];
    $price = $_GET ['price'];
    $cat =  $_GET ['cat'];

//These work fine
    //echo "add";
    //echo $name;
    //echo $desc;
    //echo $photo;
    //echo $price;
    //echo $cat;

    switch ($func) {
        case "add"     :  addProduct($name, $desc, $photo, $price, $cat);
        break;
        case "edit"    :  editProduct();
        break;
        case "remove"  :  editProduct();
        break;
    };

    function addProduct($name, $desc, $photo, $price, $cat) {
        echo "add";
        echo $name;
        echo $desc;
        echo $photo;
        echo $price;
        echo $cat;

    }

【问题讨论】:

  • var_dump($func)的结果是什么
  • 你至少得到了add的回声吗?如果没有,那么您的函数根本没有被调用,您需要查看$func 在发生这种情况时真正包含的内容,例如var_dump($func)
  • "string(7) "addname""
  • @user3105607 你去...编辑case "add":到case "addname":
  • 'addname' != 'add'。为什么变量返回“addname”?

标签: php function get switch-statement


【解决方案1】:

通过阅读 cmets,我认为您在网址中忘记了 &。

而不是你可能拥有的:

myurl.com?func=addname=name&desc=desc&photo=photo

你需要使用:

myurl.com?func=add&name=name&desc=desc&photo=photo

【讨论】:

    【解决方案2】:

    这是我的 AJAX 调用中的一个愚蠢的错误。我已经写了两次变量。使用var_dump() 有帮助! 感谢您的帮助。

    【讨论】:

      【解决方案3】:

      您的switch 语句未正确输入正确的case,因此您的addProduct 方法永远不会被调用。

      您需要确保$func == 'add' 进入add 案例并调用该方法。

      【讨论】:

        【解决方案4】:

        我已经测试了您的代码。如果 $func = 'add',它会按预期打印。检查 $_GET['func']。

        【讨论】:

          猜你喜欢
          • 2021-02-20
          • 1970-01-01
          • 1970-01-01
          • 2013-08-22
          • 2017-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-17
          相关资源
          最近更新 更多