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 루프를 사용합니다.
$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 conversion
php 7.x의 최신 버전에서는 알림이 아닌 오류이며 더 이상의 코드 실행을 방지합니다.
사용.print
,echo
on 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
'programing' 카테고리의 다른 글
저장 방법HTML 래퍼 없이 DOMDocument의 HTML을 사용하시겠습니까? (0) | 2023.01.03 |
---|---|
MaxScale 블록이 데이터베이스에 직접 연결됨 (0) | 2023.01.03 |
time.sleep --슬립 스레드 또는 프로세스? (0) | 2023.01.03 |
JDBC URL에서 Galera 로드 밸런서를 효과적으로 사용하는 방법 (0) | 2023.01.03 |
vue j를 사용하여 여러 입력 필드 리피터를 작성하는 방법 (0) | 2023.01.03 |