2013-05-22 2 views
1

예를 들어 $ _POST 값이있는 양식을 다시 채우려는 경우 (이 문제에 대한 다른 응용 프로그램이 있지만 가장 쉬운 방법입니다) $ _POST 색인이 설정되어 있는지 항상 확인해야만 값을 사용할 수 있습니다. 또는 나는 PHP에서 알림을 얻을 것이다. 예를 들어

:

echo '<input type="text" name="somefield" value="'; 
if(isset($_POST['somefield'])) 
    { echo $_POST['somefield']; } 
echo '">'; 

복잡한 형태로,이 복잡하고 많은 반복처럼 보인다.

function varcheck_isset($vartocheck) 
{ 
    if(isset($vartocheck)) 
    {return $vartocheck;} 
    else 
    {return '';} 
} 

을 다음

echo '<input type="text" name="somefield" value="'; 
echo varcheck_isset($_POST['somefield']); 
echo '">'; 

코드 좋네요 만든다 수행 그래서 난의 함수를 추출하자 생각했다.

하지만와 $ _POST는 [ 'somefield는'] 설정되지 않은, 그것은

주의 말씀이 작업을 수행 할 때 정의되지 않은 인덱스 : somefield

누구 :-(있어 이 작업을 수행하는 방법에 대한 아이디어 또는 제안


편집 :

여기에 내가하고 결국 무엇 - 난 그냥 약간 수정 Organgepill의 대답, 승인 : elclanrs에 의해

function arraycheck_isset($arraytocheck, $indextocheck) 
{ 
    if(isset($arraytocheck) && is_array($arraytocheck) && array_key_exists($indextocheck, $arraytocheck)) 
    { return $arraytocheck[$vartocheck];} 
    else 
    { return '';} 
} 

아래의 코멘트도 꽤 좋았다을. 단지 다음과 같이 작성한다 : 나는 다른 것을 확인하기 위해 필요로하는 곳에 나는 또한, 경우가있을 수 있기 때문에

echo $_POST['field'] ?: ''; 

는 개인적으로 내가 더 잘하지만 비 축약 버전을 좋아하지는 isset 외에() - 예를 들어 정규식. 이 방법은 매번 함수를 통해 일관성있게 유지합니다. 당신이 체크되기 때문에

function postedVal($vartocheck) 
{ 
    if(array_key_exists($vartocheck, $_POST)) 
    return $_POST["$vartocheck"]; 
    return ''; 
} 

함수는 항상 첫 번째 경우를 타격했다 :

+2

PHP에서 다음과 같이 할 수 있습니다 :'echo $ _POST [ 'field']? : ''' – elclanrs

+0

@elclanrs 좋은 제안입니다. 왜 그것을 답변으로 게시하지 않습니까? – olli

답변

3

이런 식으로 뭔가를 시도하는 경우가 꽤 많이 속기의, 삼항 연산자를 사용할 수 있습니다 매개 변수가 설정 되었다면 if (isset($_POST[$vartocheck]))

+0

나는 당신의 생각을 좋아한다! 그리고 그것도 매력처럼 작동합니다! 고마워 .-) – olli

3

당신은/다른

echo '<input type="text" name="somefield" value="'; 
echo isset($_POST['somefield']) ? $_POST['somefield'] : ''; 
echo '">'; 
+1

실제로 나는'@echo $ _POST [ 'somefield']'를 생각하고 있었지만 그것을 두려워했다. 이 방법은 완벽하게 작동합니다. –

+0

@DaveChen : 잠깐, 뭐라구? 그게 무엇이며 어디에서 더 자세한 정보를 찾을 수 있습니까? – olli

+0

@Anujan : 답변 해 주셔서 감사합니다. 실제로 속기를 알고 있지만 변수 이름 ($ _POST [ "somefield"])을 두 번 써야하는 위치에 놓여 있습니다 ... 오류 등의 일반적인 작업 공간을 떠납니다. : -/ – olli