2011-11-07 15 views
0

はphpの新機能です。if elseのphp配列の使い方を理解するのは難しくありません。私はこのif else inside array-php

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) 
     ); 
    } 

ような何かをしようとしましたが、私はいずれかが正確に私が事前

私に間違ったおかげでやっているものを見つけるために私を助けることができる

Parse error: syntax error, unexpected T_DOUBLE_ARROW 

解析例外次取得しています否定的な投票にはまったく問題ありませんが、何人かがなぜそれをしたのかを明記することが常に良いです。

+0

をあなたは$の状態を実行して行うつもりでしたか? 'unapprove'? – Jeune

+0

@Jeune私はいくつかのWordPressの機能に取り組んでおり、承認ステータスに基づいて、私はこれを使用しているので、使用する特定のテキストを表示する必要があります。 –

+4

このsprintfとternaryがすべて**極秘になっているあなたのコード全体を知ってもらうために** –

答えて

5

あなたは、キー値のためにこれを行うことはできません。

$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), 
    ); 
+0

キーとその値を使用しなければならないので、どのようにして望みを達成できるか考えてください。 –

+0

@user **配列定義コードの前に変数**を設定している場合は通常です。 –

+0

@ user702325私の更新を参照してください – Neal

2

あなたは配列定義内でこれを行うことはできません。

代わりに、あなたはこのような定義の後、アレイにこれらを追加することができます。

$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); 
}