2011-09-12 15 views
-1

を使用して、私はこのactions.class.phpを

public function executeListmatches(sfWebRequest $request) 
{ 
    $form_values = $request->getParameter('match_form', array());  
    global $gender_id2 = $form_values['gender2']; 
    global $age1 = $form_values['age1']; 
    $age2 = $form_values['age2']; 
    $province_id = $form_values['id']; 
    echo "in list matches ".$gender_id2." ".$age1." ".$age2." ".$province_id; 
    $this->pager = $this->setupPager(); 
    $this->matching_rows = RcProfileTablePeer::getAllBySelection($gender_id2,$age1,$age2,$province_id); 
    return sfView::SUCCESS; 
}  

のコードと、私はグローバルなキーワードを使用する場合

protected function setupPager() 
{ 
    echo "in pager ".$gender_id2." ".$age1." ".$age2." ".$province_id; 
    $pager = new sfPropelPager('RcProfileTable', 10); 
    $pager->setCriteria(RcProfileTablePeer::getAllBySelection($GLOBALS['gender_id2'],$GLOBALS['age1'],$GLOBALS['age2'],$province_id)); 
    $pager->setPage($this->getRequestParameter('page', 1)); 
    $pager->init(); 
    return $pager; 
} 

は私が取得し、エラーを持っている:

PHP Parse error: syntax error, unexpected '=', expecting ',' or ';' in actions.class.php on line 41 

私が$ GLOBALS ['gender_id2']を使用すると、値がNULLになります 私はlisにする必要があるのでページャをセットアップする必要がありますtは私の選択基準RcProfileTablePeerで

に一致するすべての行は、私が持っている:助けてください

static public function getAllBySelection($gender2,$age1,$age2,$province_id) 
{ 
    echo $gender2." ".$age1." ".$age2." ".$province_id; 
    $criteria = new Criteria(); 
    $criteria->add(RcProfileTablePeer::GENDER_ID,$gender2, Criteria::EQUAL); 
    $criteria->add(RcProfileTablePeer::AGE,$age1,Criteria::GREATER_EQUAL); 
    $criteria->addAnd(RcProfileTablePeer::AGE,$age2,Criteria::LESS_EQUAL); 
    if ($province_id <> 10) 
     $criteria->addAnd(RcProfileTablePeer::PROVINCE_ID,$province_id, Criteria::EQUAL); 
    return self::doSelect($criteria); 
} 

、私はこれを行う必要がありますどのように他を知りません。 ありがとう

+2

グローバルはまったく使用しないでください。[こちらを読む](http://stackoverflow.com/questions/5166087/global-in-functions/5166527#5166527)なぜ。 –

+0

なぜグローバルに頼っているのかという疑問を再検討することを検討してください。 – Gerry

答えて

2

コードに解析エラーがあります。 PHPインタプリタがこれを伝えます。グローバル変数を宣言して、それを1つのステートメントに割り当てることはできません。 OZ_は、すでに述べたように

global $gender_id2 = $form_values['gender2']; 

が、それ以外は

global $gender_id2; 
$gender_id2 = $form_values['gender2']; 

でなければならない、はグローバルを使用しないでください。

+0

okey dokey、ありがとうございます グローバルなキーワードは$ GLOBALSではなく使用できますか? –

+1

@Helloise Smit、それは足の中で自分自身を撃つようなものです - もちろん、それは良い決断ではありません。 –

+0

グローバル/ $ GLOBALSを使用できない場合はどうすればこの問題に取り組みますか?私はページャーを設定して、いくつのページを知る必要がありますか?したがって私はgetAllBySelection()を呼び出す必要があります。私は真剣にこの問題を回る方法を知りません。ありがとう –

関連する問題