programing

PHP 오류 해결 방법 '알림:배열에서 문자열로 변환...'

nicescript 2023. 1. 3. 22:10
반응형

PHP 오류 해결 방법 '알림:배열에서 문자열로 변환...'

는 PHP .이 파일은 PHP를 .이 파일을 에코하려고 합니다.$_POST에러가 발생하면, 코드는 다음과 같습니다.

echo "<html>";
echo "<body>";
for($i=0; $i<5;$i++){
    echo "<input name='C[]' value='$Texting[$i]' " . 
         "style='background-color:#D0A9F5;'></input>";

}
echo "</body>";
echo "</html>";
echo '<input type="submit" value="Save The Table" name="G"></input>'

POST를 에코하기 위한 코드를 다음에 나타냅니다.

if(!empty($_POST['G'])){
    echo $_POST['C'];
}

그러나 코드가 실행되면 다음과 같은 오류가 발생합니다.

Notice: Array to string conversion in 
C:\xampp\htdocs\PHIS\FinalSubmissionOfTheFormPHP.php on line 8

이 에러의 의미와 수정 방법은 무엇입니까?

이라는 이름의 C[] 쪽 .$_POST['C']그래서 당신이echo를 인쇄하려고 있기 에, 는 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」를 인쇄하는 것만으로 끝납니다.Array안내문도 있어요.

"Rooping through" ()하여 through through to to to to to to to 。echo 또는 ""를 사용할 수 .print_r.

알 수 에는 '열'을 사용할 수 .var_dump($var)어떤 종류인지, 어떤 내용인지 알 수 있습니다.이치노

PHP 알림의 의미와 재생 방법:

에 PHP :echo ★★★★★★★★★★★★★★★★★」print 문자열 PHP로 Array이 알림을 던지고 계속 진행합니다.예를 들어 다음과 같습니다.

php> print(array(1,2,3))

PHP Notice:  Array to string conversion in 
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(591) :
eval()'d code on line 1
Array

는 " " " 입니다.print.Array후에 계속합니다.stdout stderr stderr은 stderr에 계속합니다.

PHP 스크립트의 다른 예는 다음과 같습니다.

<?php
    $stuff = array(1,2,3);
    print $stuff;  //PHP Notice:  Array to string conversion in yourfile on line 3
?>

수정 1: 어레이 요소에 액세스하기 위해 foreach 루프를 사용합니다.

http://php.net/foreach

$stuff = array(1,2,3);
foreach ($stuff as $value) {
    echo $value, "\n";
}

인쇄:

1
2
3

또는 어레이 키와 함께

$stuff = array('name' => 'Joe', 'email' => 'joe@example.com');
foreach ($stuff as $key => $value) {
    echo "$key: $value\n";
}

인쇄:

name: Joe
email: joe@example.com

어레이 요소도 어레이일 수 있습니다., 「」, 「」의 를 사용합니다.foreach 또는 구문을 하여 이 "배열").$row['name']

수정 2: 어레이 내의 모든 셀을 결합합니다.

단순한 1차원 배열인 경우 딜리미터를 사용하여 모든 셀을 문자열로 결합할 수 있습니다.

<?php
    $stuff = array(1,2,3);
    print implode(", ", $stuff);    //prints 1, 2, 3
    print join(',', $stuff);        //prints 1,2,3

수정 3: 복잡한 구조를 가진 어레이를 문자열화합니다.

어레이의 구조가 복잡하지만 스트링으로 변환할 필요가 있는 경우에는 http://php.net/json_encode을 사용합니다.

$stuff = array('name' => 'Joe', 'email' => 'joe@example.com');
print json_encode($stuff);

인쇄물

{"name":"Joe","email":"joe@example.com"}

배열 구조를 간단히 살펴봅니다: 내장된 php 함수를 사용합니다.

디버깅을 위해 어레이 내용만 검사하려면 다음 기능 중 하나를 사용합니다.var_dump는 이들 중 가장 유용한 정보이므로 보통 목적으로 사용됩니다.

$stuff = array(1,2,3);
print_r($stuff);
$stuff = array(3,4,5);
var_dump($stuff);

인쇄:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
array(3) {
  [0]=>
  int(3)
  [1]=>
  int(4)
  [2]=>
  int(5)
}

사용하고 있습니다.<input name='C[]'폼이 전송될 때 PHP에 배열이 생성됩니다.

사용하고 있습니다.echo $_POST['C'];이 어레이를 에코합니다.이것은 동작하지 않습니다만, 그 통지와 「Array」라고 하는 단어를 내보냅니다.

나머지 코드를 어떻게 처리했느냐에 따라서는echo $_POST['C'][0];

Array to string conversionphp 7.x의 최신 버전에서는 알림이 아닌 오류이며 더 이상의 코드 실행을 방지합니다.

사용.print,echoon array는 더 이상 옵션이 아닙니다.

오류 및 알림을 억제하는 것은 특히 개발 환경에서 여전히 코드를 디버깅하는 경우에는 좋은 방법이 아닙니다.

사용하다var_dump,print_r, 를 사용하여 입력값을 반복합니다.foreach또는for입력 배열로 선언된 이름에 대한 입력 데이터를 출력합니다(').name[]')

오류를 발견하는 가장 일반적인 방법은try/catch블록: 에러가 발생할 수 있는 코드 실행 중단을 방지하는 데 도움이 됩니다.try차단합니다.

  try{  //wrap around possible cause of error or notice
    
    if(!empty($_POST['C'])){
        echo $_POST['C'];
    }

  }catch(Exception $e){

    //handle the error message $e->getMessage();
  }
<?php
ob_start();
var_dump($_POST['C']);
$result = ob_get_clean();
?>

결과를 변수에 캡처하려면

언급URL : https://stackoverflow.com/questions/20017409/how-to-solve-php-error-notice-array-to-string-conversion-in

반응형