dsaj20411 2012-10-12 06:12
浏览 29
已采纳

if else语句内部数组(速记版本仍然无效)php

I had no idea it was not possible to use if else statement inside an array in php. I've searched stackoverflow and found that shorthand version should actually work fine.

I tried it but still have errors and page doesn't load, my code:

query_posts (array(

                                ($prefooter_order_logic == 'xviews' ? "'v_sortby' => 'views', 'v_orderby' => 'desc'," : "")

                                'order' => 'DESC',
                                'orderby' => $prefooter_order_logic,

                                'posts_per_page' => '10',
                                'post_type' => 'post',
                                'category_name' => $prefooter_category_select

                            ));

This doesn't give me error:

but it doesn't work...

($prefooter_order_logic == 'xviews' ? "

                                    'v_sortby' => 'views',
                                    'v_orderby' => 'desc',

                                    " : "

                                    'order' => 'DESC',
                                    'orderby' => $prefooter_order_logic,

                                    "),

I've decided to stop playing around and do it easiest way:

btw, any thoughts if this is the best way to do it? or not?

                if ($prefooter_order_logic == 'xviews') {

                    query_posts (array(
                        'v_sortby' => 'views',
                        'v_orderby' => 'desc',
                        'posts_per_page' => '10',
                        'post_type' => 'post',
                        'category_name' => $prefooter_category_select
                    ));

                } else {

                    query_posts (array(
                        'order' => 'DESC',
                        'orderby' => $prefooter_order_logic,
                        'posts_per_page' => '10',
                        'post_type' => 'post',
                        'category_name' => $prefooter_category_select
                    ));

                }
  • 写回答

4条回答 默认 最新

  • dsgrs26202 2012-10-12 06:19
    关注

    That will produce syntax error, unexpected T_CONSTANT_ENCAPSED_STRING because you are missing a comma at the end of this line:

    ($prefooter_order_logic == 'xviews' ? "'v_sortby' => 'views', 'v_orderby' => 'desc'," : ""), 
                                                                                               ^ here
    

    Edit:

    Just modify the array after creating it, based on your condition:

    $arr = array(
    
        'posts_per_page' => '10',
        'post_type' => 'post',
        'category_name' => $prefooter_category_select
    
    );
    
    if($prefooter_order_logic == 'xviews')
    {
        $arr['v_sortby'] = 'views';
        $arr['v_orderby'] = 'desc';
    }
    else
    {
        $arr['order'] = 'DESC';
        $arr['orderby'] = $prefooter_order_logic;
    }
    
    query_posts($arr);
    

    Alternatively, use array_merge():

    $arr = array(
    
        'posts_per_page' => '10',
        'post_type' => 'post',
        'category_name' => $prefooter_category_select
    
    );
    
    $arr = $prefooter_order_logic == 'xviews' ? array_merge($arr, array('v_sortby' => 'views', 'v_orderby' => 'desc')) : array_merge($arr, array('order' => 'desc', 'orderby' => $prefooter_order_logic));
    
    query_posts($arr);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab