PHP 4.1 이전에는 $ _POST가 없었습니다. 그 대신 $ HTTP_POST_VARS라는 변수가 있었는데, 그것은 슈퍼 글로벌이 아니라는 점을 제외하고는 똑같이했습니다. $ HTTP_POST_VARS는 더 이상 사용되지 않으므로 걱정할 필요가 없습니다. $ _POST에 대한 검사는 php < 4.1 설치를 실행하면 실제로 false를 반환 할 수 있으므로 코드가이를 확인했을 수 있습니다.
if ($_POST)
은 한 가지 중요한 차이점을 제외하고
if (!empty($_POST))
동일 동작 : $ _POST이 설정되지 않은 경우 첫 번째 버전은 빈(), 통지서가 발생합니다 - 코스 error_output가 통지를 에코로 설정해야합니다의 버전 (통지를 포기하지 않습니다 당신이 뭔가를 볼 수 있도록). 검사중인 변수가 설정되지 않은 경우 항상 비어 있어야합니다.
나는 if ($_POST)
보다 나쁜 냄새가 난다고 말하고 싶습니다. 이미 원래 코더의 의도가 불분명하다는 것을 이미 알고 있습니다.HTTP 요청에서 POST 방법을 사용했음을 알고 싶다면 Wouter의 대답을 통해 훨씬 더 명확한 의도를 알 수 있습니다. $ _POST가 있는지 (이전 PHP 버전을 확인하십시오) 확인하고 싶다면 isset($_POST)
이 더 뚜렷합니다. POST 요청에 적어도 하나의 매개 변수가 POST를 사용하여 전송되는지 확인하려면 empty($_POST)
이 훨씬 명확하고 그러한 의도는 극히 드물어야합니다.
원본을 계속 읽고 원본 의도에 대한 의도를 파악한 다음 그에 따라 구문을 바꾸거나 적어도 해당 행에 주석을 달아주십시오.
왜 POST 배열을 확인합니까? POST 변수가 올바른지 검사 할 것입니까? '$ _POST [ "data1"]' –
각각의'POST' 변수의 유효성을 검사하는 것이 더 나을지 모르겠지만 그것을 사용하는 좋은 이유는 사용자가 폼 처리 페이지로 수동으로 이동하는 경우입니다.이 경우에는'POST' 배열 비어있을 것이며 그에 따라 상황을 처리 할 수 있습니다. 나는 약간의 코드가 실패 할 상황이 있다고 생각하지 않는다. 나는 최선의 방법은 그것을 사용하는 것이라고 생각하고 각 변수를 개별적으로'if' 내부에서 검사하는 것입니다. – martincarlin87
나는 항상 특정 값을 확인한다. 나는 다른 사람들 코드에서 발견 된 if ($ _POST) 인스턴스를 수백 개 이상 수정해야하는지 궁금 할뿐입니다. – teynon