FOR 출력이 PHP에서 배열의 0 요소로 시작하지 않습니다.

안드레이 부 데이

FOR 사이클의 출력으로 0 번째 배열 요소에 문제가 있습니다. 서버에서 ABCDE 문자를 인쇄하고 싶습니다. 배열의 요소와 다른 것이 있으면 다른 것을 인쇄해야합니다. 그래서 나는 그것에 대한 조건과 switch 문을 만들었습니다.

그러나 배열의 0 번째 요소는 항상 다른 요소로 인쇄됩니다. 내가 뭘 잘못하고 있는지 모르겠다. 제발 날 좀 도와 줄 수 있니? 왜 이런 일이 발생하는지 설명해 주시겠습니까?

<?php
    $array = array(0,1,2,3,4,"something");
    for($i=0;$i<count($array);$i++){
        echo '<br>'.$i;
        if ($array[$i] == 'something') {
            echo ' something ';
        } else {
            switch ($array[$i])
                {   case "0":
                        echo ' A';
                        break;
                    case "1":
                        echo ' B';
                        break;
                    case "2":
                        echo ' C';
                        break;
                    case "3":
                        echo ' D';
                        break;
                    case "4":
                        echo ' E';
                        break;
                    default:;
                };
            };
        };
    ?>

내 출력은 다음과 같습니다.

0 something 
1 B
2 C
3 D
4 E
5 something

그러나 나는 이것을 기대하고있다 :

0 A 
1 B
2 C
3 D
4 E
5 something
잠넛

정수 0와 문자열을 비교할 때 "something"문자열은 정수로 캐스트됩니다. 보다:

var_dump((int) 0); // yields int 0
var_dump((int) 'something'); // yields int 0

PHP 버그 요청 39579를 참조하십시오 . 이것은 버그가 아니며 "예상"대로 작동합니다.

적절한 비교는 엄격한 같음 ( 유형 을 테스트하는 등호 3 개)을 사용해야합니다 .

if ($array[$i] === 'something') {
    echo ' something ';
}

또는 비교 중에 "알려진 / 가정 된"유형을 일시적으로 캐스트 하고 여전히 느슨한 동등성을 유지할 수 있습니다.

if ((string) $array[$i] == 'something') {
    echo ' something ';
}

// OR with strval

if (strval($array[$i]) == 'something') {
    echo ' something ';
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자식에서 부모 구성 요소로의 출력이 제대로 작동하지 않습니다.

분류에서Dev

왜 splint는 {0}이 C에서 모든 요소를 0으로 초기화하지 않는다고 제안합니다. 초기화 프로그램은 선언 된 배열의 모든 요소를 정의하지 않습니다.

분류에서Dev

배열이 내 사진의 출력에서 작동하지 않습니다.

분류에서Dev

배열의 요소를 임의로 교체하면 배열이 스택에있을 때 0이됩니다.

분류에서Dev

HTML의 테이블에서 JavaScript 배열 요소를 하이퍼 링크로 출력 할 수 있습니까?

분류에서Dev

PHP : 배열이 0에서 시작하지 않을 때 배열 검색

분류에서Dev

python : 끝이 0으로 숫자가 반전 될 때. 출력에 0을 표시하지 않습니다.

분류에서Dev

0에서 다차원 배열의 정의를 시작하지 않는 이유는 무엇입니까?

분류에서Dev

nasm의 배열에서 가장 큰 요소를 찾는이 코드는 작동하지 않습니다.

분류에서Dev

Angular 출력에서 문자열 연결이 방출되고 예상대로 작동하지 않습니다.

분류에서Dev

PHP에서 큰 숫자로 작업하면 0이 출력됩니다.

분류에서Dev

배열을 세션 변수로 전달하고 별도의 PHP 파일에서 호출하면 마지막 배열 요소 만 표시됩니다

분류에서Dev

배열의 요소가 in_array에서 작동하지 않습니다.

분류에서Dev

배열의 일부 시작 요소를 유지하고 나머지는 R에서 0으로 설정

분류에서Dev

difftime의 출력이 각 그룹에 대해 0에서 시작하지 않는 이유

분류에서Dev

처음 몇 개의 요소에 값을 거의 할당하지 않아도 모든 배열 요소가 0으로 수정 된 이유

분류에서Dev

matlab에서 이중 배열을 셀형 배열의 한 요소로 변환하고 싶습니다.

분류에서Dev

0을 배열에서 0이 아닌 다음 요소로 바꿉니다.

분류에서Dev

열의 에코 배열 값이 작동하지 않습니다.

분류에서Dev

오류 : char 배열 이니셜 라이저의 요소 액세스가 char로 작동하지 않습니다.

분류에서Dev

마지막 자식이 작동하지 않거나 devtool의 CSS 요소에 표시되지 않습니다.

분류에서Dev

마지막 자식이 작동하지 않거나 devtool의 CSS 요소에 표시되지 않습니다.

분류에서Dev

OpenMP를 사용하여 배열 요소를 합산하는 것이 대형 배열 (C)에서 제대로 작동하지 않습니다.

분류에서Dev

라이브 와이어 구성 요소에서 자동으로 모달 열기 작동하지 않습니다.

분류에서Dev

Angular 9, 배열을 자식 구성 요소의 @Input으로 바인딩이 작동하지 않습니다.

분류에서Dev

$ timeout이있는 배열의 요소 삭제가 제대로 작동하지 않습니다.

분류에서Dev

배열의 루프를 사용하여 요소별로 1, 2, 3 순서로 출력을 가져옵니다.

분류에서Dev

svn 로그 출력이 PHP 페이지의 브라우저에 표시되지 않습니다.

분류에서Dev

두 개의 배열이 있습니다. Ar1에서 Ar2로 일부 요소를 푸시하고 참조를 유지하고 싶습니다.

Related 관련 기사

  1. 1

    자식에서 부모 구성 요소로의 출력이 제대로 작동하지 않습니다.

  2. 2

    왜 splint는 {0}이 C에서 모든 요소를 0으로 초기화하지 않는다고 제안합니다. 초기화 프로그램은 선언 된 배열의 모든 요소를 정의하지 않습니다.

  3. 3

    배열이 내 사진의 출력에서 작동하지 않습니다.

  4. 4

    배열의 요소를 임의로 교체하면 배열이 스택에있을 때 0이됩니다.

  5. 5

    HTML의 테이블에서 JavaScript 배열 요소를 하이퍼 링크로 출력 할 수 있습니까?

  6. 6

    PHP : 배열이 0에서 시작하지 않을 때 배열 검색

  7. 7

    python : 끝이 0으로 숫자가 반전 될 때. 출력에 0을 표시하지 않습니다.

  8. 8

    0에서 다차원 배열의 정의를 시작하지 않는 이유는 무엇입니까?

  9. 9

    nasm의 배열에서 가장 큰 요소를 찾는이 코드는 작동하지 않습니다.

  10. 10

    Angular 출력에서 문자열 연결이 방출되고 예상대로 작동하지 않습니다.

  11. 11

    PHP에서 큰 숫자로 작업하면 0이 출력됩니다.

  12. 12

    배열을 세션 변수로 전달하고 별도의 PHP 파일에서 호출하면 마지막 배열 요소 만 표시됩니다

  13. 13

    배열의 요소가 in_array에서 작동하지 않습니다.

  14. 14

    배열의 일부 시작 요소를 유지하고 나머지는 R에서 0으로 설정

  15. 15

    difftime의 출력이 각 그룹에 대해 0에서 시작하지 않는 이유

  16. 16

    처음 몇 개의 요소에 값을 거의 할당하지 않아도 모든 배열 요소가 0으로 수정 된 이유

  17. 17

    matlab에서 이중 배열을 셀형 배열의 한 요소로 변환하고 싶습니다.

  18. 18

    0을 배열에서 0이 아닌 다음 요소로 바꿉니다.

  19. 19

    열의 에코 배열 값이 작동하지 않습니다.

  20. 20

    오류 : char 배열 이니셜 라이저의 요소 액세스가 char로 작동하지 않습니다.

  21. 21

    마지막 자식이 작동하지 않거나 devtool의 CSS 요소에 표시되지 않습니다.

  22. 22

    마지막 자식이 작동하지 않거나 devtool의 CSS 요소에 표시되지 않습니다.

  23. 23

    OpenMP를 사용하여 배열 요소를 합산하는 것이 대형 배열 (C)에서 제대로 작동하지 않습니다.

  24. 24

    라이브 와이어 구성 요소에서 자동으로 모달 열기 작동하지 않습니다.

  25. 25

    Angular 9, 배열을 자식 구성 요소의 @Input으로 바인딩이 작동하지 않습니다.

  26. 26

    $ timeout이있는 배열의 요소 삭제가 제대로 작동하지 않습니다.

  27. 27

    배열의 루프를 사용하여 요소별로 1, 2, 3 순서로 출력을 가져옵니다.

  28. 28

    svn 로그 출력이 PHP 페이지의 브라우저에 표시되지 않습니다.

  29. 29

    두 개의 배열이 있습니다. Ar1에서 Ar2로 일부 요소를 푸시하고 참조를 유지하고 싶습니다.

뜨겁다태그

보관