PHP는 개발에 매우 효율적이므로 이해할 수 있지만 실행 효율성이 희생됩니다. php 배열 기능은 매우 강력하지만 만일의 경우에 대비하여 여러 가지 상황을 시도해 보아야 합니다. 앞으로 더 많은 문제가 발견되면 추가하겠습니다.
foreach 는 데이터나 객체의 내용을 쉽게 읽을 수 있는 배열을 순회하는 간단한 방법을 제공합니다. 그러나 공식 문서에는 foreach에 의존하기 때문이라고 나와 있습니다. 내부 배열 포인터의 경우 루프에서 해당 값을 수정하면 예기치 않은 동작이 발생할 수 있습니다. 따라서 기본적으로 1. 루프 내부의 값을 수정하려고 하지 마십시오. 그렇지 않으면 결과가 원하는 것 이상일 것입니다. 2. '&'를 사용하는 것은 거의 사용되지 않지만 안전한 방법입니다. , 참조가 끝난 후 즉시 unset 함수를 호출하여 변수를 삭제해야 합니다. 그렇지 않으면 다음 코드에서 이 변수를 다시 사용하면 루프의 마지막 값이 수정되어 예상치 못한 값을 얻게 됩니다. 목록이 루프아웃되면 출력의 마지막 줄에 지저분한 값이나 null 값이 많이 있을 것입니다. unset을 사용하면 이 문제가 해결됩니다.
in_array, 그 의미는 다음 배열에 이전 문자열이 존재하는지 확인하는 것이며, 대부분의 경우에도 이와 같이 작동하지만 다음 배열이 array(0, 1과 같이 정수인 경우) , 2, 3) 문제가 있습니다. PHP는 이전 문자열에 대해 intval을 수행하여 값 0을 얻습니다. 그런 다음 우연히 배열에 이 값이 있으면 방정식이 설정됩니다. 또 기대치를 초과하지 않나요? 따라서 다음 데이터가 정수라고 판단되는 경우, 특히 0일 수 있는 경우(모든 문자열을 대체할 수 있음) 더 이상 이 함수를 사용하지 않아야 하며 대신 key_exists를 사용할 수 있지만 다음 데이터를 사용해야 합니다. array_flip은 반전 작업을 수행합니다.
문자열을 배열로 사용하여 값을 얻으면 어떻게 되나요? PHP는 내결함성이 매우 뛰어난 언어입니다. 실수를 바로잡도록 최선을 다하므로 참조 첨자를 정수로 현명하게 변환합니다. 그러면 문자열 첨자는 0이고 값은 You입니다. 첫 번째 문자열의 값을 얻게 됩니다. 예상을 뛰어넘는 것인가요? 해결 방법은 아래 첨자 is_array를 참조하기 전에 변수가 배열인지 확인하는 것입니다.
이런 저런 문제를 겪으면서 계속 얘기하는 선배님들이 많지만, 저희는 여전히 피할 수 없는 일이고 계속해서 실수를 저지르고 있습니다. 어쩌면 이것이 사회일지도 모른다! 모두가 너무 바빠서 어떻게 당신의 진부한 코드를 해독할 시간을 가질 수 있습니까? ㅎㅎ
위 내용은 관련 내용을 포함하여 PHP의 foreach/in_array에서 발생하는 몇 가지 흔하지 않은 문제를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.