programing

치명적 오류:발견되지 않은 오류: 스칼라를 어레이 경고로 사용할 수 없습니다.

cafebook 2023. 8. 1. 20:48
반응형

치명적 오류:발견되지 않은 오류: 스칼라를 어레이 경고로 사용할 수 없습니다.

다음 코드가 있습니다.

 $final = [1 => 2];
 $id = 1;

 $final[$id][0] = 3;

코드가 정상적으로 작동하는 것 같지만 다음 경고가 표시됩니다.

경고: 스칼라 값을 줄 X(줄: $final[$id][0] = 3)에서 배열로 사용할 수 없습니다.

이걸 어떻게 고치는지 누가 알려줄 수 있나요?

설정해야 합니다.$final[$id]배열에 요소를 추가하기 전에 배열에 추가합니다.다음 중 하나를 사용하여 초기화

$final[$id] = array();
$final[$id][0] = 3;
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];

또는

$final[$id] = array(0 => 3);
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];

그 이유는 처음에 일반 정수 또는 문자열로 변수를 선언한 다음 나중에 변수를 배열로 바꾸려고 하기 때문입니다.

이와 관련하여 발견된 또 다른 문제는 어레이를 중첩할 때 경고가 발생하는 경향이 있다는 것입니다. 다음 사항을 고려하십시오.

$data = [
"rs" => null
]

위의 이 기능은 다음과 같이 사용할 경우 완전히 정상적으로 작동합니다.

$data["rs"] =  5;

그러나 다음과 같은 경우 경고가 표시됩니다.:

$data = [
    "rs" => [
       "rs1" => null;
       ]
    ]
..

$data[rs][rs1] = 2; // this will throw the warning unless assigned to an array

또한 배열을 선언하지 않았는지 확인한 다음 문자열, 부동소수, 정수와 같은 다른 항목을 배열에 할당합니다.저도 그런 문제가 있었어요.만약 당신이 약간의 출력을 한다면, 저는 제가 처음에 원하는 것을 볼 수 있었지만, 같은 코드를 다시 통과한 후에는 볼 수 없었습니다.

언급URL : https://stackoverflow.com/questions/6019853/fatal-error-uncaught-error-cannot-use-a-scalar-as-an-array-warning

반응형