2013-12-21 2 views
0

편집 : 내 첫 번째 질문에 대한 링크. 몇 가지 일들을 정리할 수 있습니다. PHP Get corresponding data, with default and error handlingPHP는 자체 생성자 안에 객체를 만듭니다.

나는 GET 문이 있는지 확인하는 기능이 있습니다. 그렇다면 값을 GET 문의 값을 기반으로 클래스를 선택하는 다른 함수로 전달합니다.

설명 : URL입니다 = 페이지 = 연락
가 GetFormVariable 그것을 승인하고, 클래스 연락을 선택하고 문자열을 돌려 줄 것입니다. 이 문자열은 'Content'객체로 사용되어 페이지 내용을 생성합니다.

public function getFormVariable($value){ 

    switch (strtoupper($_SERVER['REQUEST_METHOD'])) { 
     case 'GET': 
      if (isset($_GET[$value]) && $_GET[$value] != NULL) { 
       return $_GET[$value]; 
      } 
      else{ 
       return false; 
      } 
      break; 
      case 'POST': 
       if (isset($POST[$value]) && $POST[$value] != NULL) { 
       return $POST[$value]; 
      } 
      else{ 
        return false; 
      } 
       break; 

     default: 
      return false; 

    } 
} 

이제 문제가됩니다. URL에 GET 문이없는 경우. GetFormVariable은 false를 반환합니다. 그리고 이것은 아무 것도 보여주지 않는다는 것을 의미합니다.

이 생성자는 어떻게 제공합니까?

public function SetProperty ($prob, $val){ 
    $this->$prob = $val; 
} 

ContentHome을 만드는 데 필요한 정보.
SetProperty ('Content', 'ContentHome');

불쌍한 설명에 대해 사과드립니다. 불분명 한 점이 있으면 알려주세요. 어떤이 이후

+0

...이 말인가요? – gontrollez

+0

@gontrollez 무슨 뜻인지 모르겠다. –

+0

'Default argument values'라는 제목의 [PHP 매뉴얼 페이지] (http://www.php.net/manual/en/functions.arguments.php) 섹션이 있습니다. –

답변

1

나는 우리가 당신이 요구하는지이 질문은 불분명 닫 제안,하지만 어쨌든 제공된 코드 샘플에 도움을 던져하기로 결정 ...

당신은 극적으로이를 제거 할 수 있으며 해요 문맥, 기능도 static 수 있습니다.

static public function getFormVariable($value) 
{ 
    if($_SERVER['REQUEST_METHOD'] == 'GET' && 
     isset($_GET[$value])    && 
     !empty($_GET[$value])) 
     return $_GET[$value]; 

    elseif($_SERVER['REQUEST_METHOD'] == 'POST' && 
      isset($POST[$value])     && 
      !empty($POST[$value])) 
     return $POST[$value]; 

    return false; 
} 

원래 isset!= NULL 검사 같은 검사를하고 있었다. 어쩌면 empty() 수표를 세 번째 수표로 사용하고 싶지만 look it up 수 있습니다.

+0

getFormVariable()이 false를 반환하면 URL에 실제 GET 문이 없으므로 클래스를로드해야합니다. 이러한 클래스는 객체의 다른 파일을 통해로드/활성화됩니다. 다음은 $ ConfigPage-> SetProperty ('Content', 'ContentHome') 객체입니다. 그리고 getFormVariable() 함수가 생성되고 사용되는 파일에서. 이제 어떻게 생성자 자체에서이 Content를 구성합니까? –

+0

'getFormVariable'은'$ _GET' 또는'$ _POST'에서 값을 찾습니다. 일부 값에 대해이 정보를 기반으로 클래스를 인스턴스화하는 것은'getFormVariable'의 * outside *에서 처리해야합니다. – quickshiftin

+1

코드가 솔루션이 아니었지만 내 코드를 향상 시켰습니다. 그래서 hearby 나는이 질문을 포기하기 때문에 해결책으로 당신의 응답을 표시합니다. 고마워요! –

0

질문이 명확하지 않습니다.

getFormVariable을 어떻게 호출합니까? getFormVariable이 제공하는 정보로 SetProperty를 어떻게 사용합니까?

는 지금까지 내가 이해, 당신은 기본값을 사용하여

$var = getFormVariable(???); 

if (false === $var) 
{ 
    SetProperty('Content', 'ContentHome'); 
} else { 
    SetProperty('var', $var); 
} 
관련 문제