在数组php中使用if-else

在数组php中使用if-else,php,arrays,Php,Arrays,作为php新手,我不知道如何在php数组中使用if-else。我试着做这样的事 function column_title($item){ $status=false; if($item->uTestimonials_approval =='0') $status=false; else $status=true; //Build row actions $acti

作为php新手,我不知道如何在php数组中使用
if-else
。我试着做这样的事

function column_title($item){
        $status=false;
        if($item->uTestimonials_approval =='0')
           $status=false;
         else
          $status=true;

        //Build row actions
        $actions = array(
             $status ? 'unapprove'      => sprintf('<a href="?page=%s&action=%s&id=%s">Unapprove</a>',$_REQUEST['page'],'unapprove',$item-> uTestimonials_id),:
            'approve1'      => sprintf('<a href="?page=%s&action=%s&id=%s">Approve</a>',$_REQUEST['page'],'approve',$item-> uTestimonials_id),

            'delete'    => sprintf('<a href="?page=%s&action=%s&id=%s">Delete</a>',$_REQUEST['page'],'delete',$item-> uTestimonials_id),
        );

        //Return the title contents
        return sprintf('%1$s <span style="color:silver">(id:%2$s)</span>%3$s',
            /*$1%s*/ $item-> uTestimonials_message,
            /*$2%s*/ $item-> uTestimonials_id,
            /*$3%s*/ $this->row_actions($actions)
        );
    }
有人能帮我找出我到底做错了什么吗?提前谢谢


我完全可以投反对票,但最好说明为什么有人会这样做,这样人们才能改善自己不能为一个关键值这样做:

 $status ? 'unapprove'
请尝试以下方法:

    //Build row actions
    $ap = 'approve';
    $key = 'approve1';
    if($status){             
       $ap = 'unapprove';
       $key = 'unapprove';
    }
    $actions = array(
        $key => sprintf('<a href="?page=%s&action=%s&id=%s">'.$ap.'</a>',$_REQUEST['page'],$ap,$item-> uTestimonials_id),:
        'delete' => sprintf('<a href="?page=%s&action=%s&id=%s">Delete</a>',$_REQUEST['page'],'delete',$item-> uTestimonials_id),
    );
//生成行操作
$ap=‘批准’;
$key='approve1';
如果($状态){
$ap='取消审批';
$key='取消审批';
}
$actions=数组(
$key=>sprintf(“”,$\u请求['page'],$ap,$item->utestimationals\u id),:
'delete'=>sprintf('',$\u请求['page'],'delete',$item->utestimationals\u id),
);

不能在数组定义中执行此操作

相反,您可以在定义后将其添加到数组中,如下所示:

$actions = array(
    'delete'    => sprintf('<a href="?page=%s&action=%s&id=%s">Delete</a>',$_REQUEST['page'],'delete',$item-> uTestimonials_id),
);

if ($status) {
    $actions['unapprove'] = sprintf('<a href="?page=%s&action=%s&id=%s">Unapprove</a>',$_REQUEST['page'],'unapprove',$item-> uTestimonials_id);
}
else {
    $actions['approve'] = sprintf('<a href="?page=%s&action=%s&id=%s">Approve</a>',$_REQUEST['page'],'approve',$item-> uTestimonials_id);
}
$actions=array(
'delete'=>sprintf('',$\u请求['page'],'delete',$item->utestimationals\u id),
);
如果($状态){
$actions['unapprove']=sprintf(“”,$\u请求['page'],'unapprove',$item->utestimationals\u id);
}
否则{
$actions['approve']=sprintf(“”,$\请求['page'],'approve',$item->utestimationals\u id);
}

当我必须使用密钥和值来对抗it@user如果在数组定义代码之前设置一个变量,那么只设置一个常规变量怎么样?@Col.shrapanel我添加了^ ^无需这样做,您可以对数组键使用速记符号。他只是没有指定它的else部分,这就是它抛出错误的原因。@Interstarr_Coder查看OP的代码,else被指定了,但在错误的位置。您打算通过执行$status做什么unapprove'?@Jeune我正在开发一些wordpress功能,根据批准状态,我需要显示某些要使用的文本,所以我正在使用它。为了让你知道,请完整地编写你的代码,所有这些sprintf和Trialum都非常不可读
$actions = array(
    'delete'    => sprintf('<a href="?page=%s&action=%s&id=%s">Delete</a>',$_REQUEST['page'],'delete',$item-> uTestimonials_id),
);

if ($status) {
    $actions['unapprove'] = sprintf('<a href="?page=%s&action=%s&id=%s">Unapprove</a>',$_REQUEST['page'],'unapprove',$item-> uTestimonials_id);
}
else {
    $actions['approve'] = sprintf('<a href="?page=%s&action=%s&id=%s">Approve</a>',$_REQUEST['page'],'approve',$item-> uTestimonials_id);
}