【问题标题】:PHP switch an object whether a string or a numberPHP切换对象是字符串还是数字
【发布时间】:2018-11-08 21:01:18
【问题描述】:

我试图从我拥有的 json 数据中获取一些东西,所以这是我的 json 数据

    $json = '
    {
        "type": {
            "image" : [
                {"data" : "PNG"}
            ],
            "title" : [
                {"value" : "OJKAOSKAOSK"}
            ],
            "text" : [
                {"value" : "asdsada"}
            ]
        }
    }';

    $form = json_decode($json);

然后用json_decode();把它变成一个对象

在那之后我尝试做这样的切换:

    foreach ($form as $type) {
        print_r($type->image);
        switch($type) {
            case 'image':
                echo 'image_data';
            break;
            case 'text' :
                print_r('text_value');
            break;
            case 'title' :
                print_r('title_value');
            break;
            default:
                print_r('none');
            break;
        }
    }

问题是我无法使用 case 'string' 看到这些数据,但我可以看到带有 $form->type->image$type->image 的数据,是否有可能以 string 作为 case 来切换它?

【问题讨论】:

    标签: php json object


    【解决方案1】:

    你可以试试这个方法

     <?php 
    foreach ($form->type as $key => $val) {
            echo $key;
            switch($key) {
                case 'image':
                    echo 'image_data';
                break;
                case 'text' :
                    print_r('text_value');
                break;
                case 'title' :
                    print_r('title_value');
                break;
                default:
                    print_r('none');
                break;
            }
        }
    ?>
    

    它应该按照您期望的方式工作。

    【讨论】:

    • 哇这真的有效!多谢!我忘记了我可以在foreach 方面做点该死的我的坏事!
    • 将我的答案标记为解决方案 (y)。
    猜你喜欢
    • 2015-01-01
    • 2011-03-19
    • 2019-08-04
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多