2011-09-12 3 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입니다. 내가리스로 설정해야하기 때문에 호출기를 설정해야합니다. 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

전역을 사용하지 마십시오. [read here] (http://stackoverflow.com/questions/5166087/global-in-functions/5166527#5166527) 이유. –

+0

왜 주위에 더 적합한 해결책이 있는지와 같이 전역에 의지하는 이유에 대한 질문을 재구성하는 것을 고려해야합니다. – Gerry

답변

2

코드에 구문 분석 오류가 있습니다. PHP 인터프리터가이를 알려줍니다. 전역 변수를 선언 할 수 없으며 하나의 명령문에 할당 할 수 없습니다.

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

는 전역를 사용하지 않는 OZ_ 이미 언급 한 바와 같이 그 외에는

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

, 해야합니다.

+0

okey dokey, 감사합니다. 그래서 글로벌 키워드는 $ GLOBALS가 아닌 사용할 수 있습니까? –

+1

@Helloise Smit, 그것은 발에서 몸을 쏘는 것과 같습니다. 물론 당신은 좋은 결정이 아닙니다. –

+0

어떻게 글로벌/$ GLOBALS를 사용할 수 없다면이 문제를 해결할 수 있을까요? 내가 얼마나 많은 페이지를 알고 호출기를 설정해야합니까 ?? 따라서 getAllBySelection()을 호출해야합니다. 나는 심각하게이 문제를 해결하는 법을 모른다. 도와 주시겠습니까? 감사합니다 –