문제

$ _request [ "input_name"]를 확인할 때 양식 처리 중에 ISSET이 필요한지 이해하려고 노력합니다. 존재하지 않는 배열 항목 .... if ($ _ request [ "input_name"])를 사용할 수 있습니다.

thnks

도움이 되었습니까?

해결책

if($_REQUEST["input_name"])

"input_name"이 존재하지 않으면 통지 (오류)를 던지므로 isset ()가 권장됩니다.

다른 팁

나는 사용하지 않는 것이 좋습니다 $_REQUEST 양식을 테스트하지 않는 한 양식 입력 캡처를위한 SuperGlobal. 사용 $_GET 또는 $_POST 대신, 당신이 정말로 좋은 이유가 없다면.

또한, isset() 그리고 array_key_exists() 둘 다 배열 키와 관련하여 동일한 트릭을 수행하지만 array_key_exists() 배열 컨텍스트에서 명확합니다.

사용 권장 :

error_reporting(E_ALL); //E_ALL - All errors and warnings

개발 환경 내에서, 더 나은 관행이 적용될 수있는 곳을 드러 낼 수 있으므로, 이러한 변수가 사용하기 전에 선언하지 않는 등.

다른 유형의 오류 수준이 있습니다. 설정되지 않은 변수를 확인하면 통지가 발생합니다. 당신의 오류보고 아마도 그것들을 무시할 것입니다. 항상 사용하는 것이 가장 좋습니다 isset 변수가 설정되었는지 확인하려면 그것은 gotchas가 있습니다.

예를 들어 위에서하고있는 일만하고, 예를 들어 $_REQUEST["input_name"] 문자열 "0"은 false로 평가됩니다. 또한 쿠키 등과 같은 것들의 영향을받을 수 있기 때문에 $ _request를 사용하여 시작하는 것은 좋은 생각이 아닙니다. 일반적으로 나쁜 아키텍처의 코드 냄새입니다.

$ _request를 사용하는 것은 거의 해킹입니다. $ _post 또는 $ _get (수행중인 작업에 따라)을 사용해야하며 isset ()를 사용해야합니다.

내가 PHP에서 읽은 모든 책은 그렇게 말하는 것 같습니다.

일반적으로 테스트의 경우 error_reporting (e_all)을 사용하여 php.ini 또는 코드에서 E_all (모든 오류 및 경고)에 오류보고를 설정합니다. (e_strict 추가를 살펴보십시오 또한) 오류에 대한 명백한 통지를 얻는 것이 좋습니다.

너무 모호한 $ _request를 사용하지 않고 (Get, Post 및 Cookie 값 포함), 실제로 의미하는 경우 $ _post 또는 $ _get을 사용하고 다음을 확인하십시오. isset($_POST["input_name"])

짧은 대답은 "예"입니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top