예를 들어 $ _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 '';
}
함수는 항상 첫 번째 경우를 타격했다 :
PHP에서 다음과 같이 할 수 있습니다 :'echo $ _POST [ 'field']? : ''' – elclanrs
@elclanrs 좋은 제안입니다. 왜 그것을 답변으로 게시하지 않습니까? – olli