PHP 큰따옴표로 배열 요소에 액세스할 때 발생하는 오류에 대한 해결 방법
아래 편집기는 PHP에서 큰따옴표로 묶인 배열 요소에 액세스할 때 발생하는 오류에 대한 해결책을 공유합니다. PHP를 학습하는 데 좋은 참고 자료이자 가치가 있으므로 모든 사람에게 도움이 되기를 바랍니다. PHP에 관심 있는 친구들은 편집자를 따라가 보세요
저는 현재 WeChat 공개 계정을 개발 중입니다. 그래픽과 텍스트를 전송하기 위한 인터페이스에서 배열 요소를 XMLstring
foreach ($itemArr as $key => $value){ $items .= "<item> <Title><![CDATA[$value['title']]]></Title> <Description><![CDATA[[$value['description']]]></Description> <PicUrl><![CDATA[$value['picUrl']]]></PicUrl> <Url><![CDATA[$value['url']]]></Url> </item>"; }
으로 연결해야 합니다. 결과는 다음과 같은 오류 메시지였습니다.
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\hhp\wamp\www\weixin\wx_sample.php on line 146
오류 메시지를 보니 작은 따옴표 문제인 것 같았습니다. 과감히 삭제한 결과 오류는 없었습니다. 그런데 혼란스럽습니다. 아래 첨자가 문자열인 배열 요소에 따옴표를 추가하면 안 되나요? 배열에 대한 설명을 확인하기 위해 PHP 공식 매뉴얼에 가보니 다음과 같은 문단이 있습니다.
$arr = array('fruit' => 'apple', 'veggie' => 'carrot'); // This will not work, and will result in a parse error, such as: // Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING' // This of course applies to using superglobals in strings as well print "Hello $arr['fruit']"; print "Hello $_GET['foo']";
일반적인 배열 변수나 슈퍼 전역 배열 변수를 큰따옴표로 묶은 경우에는 두 가지 잘못된 작성 방법이 있습니다. index 문자열의 배열 요소에 대해 작은따옴표를 색인 문자열에 추가하면 안 됩니다. 그렇다면 올바른 작성 방법은 무엇입니까? 그래서 공식 매뉴얼을 계속 검색한 결과 다음과 같은 문구를 발견했습니다.
$arr = array('fruit' => 'apple', 'veggie' => 'carrot'); // This defines a constant to demonstrate what's going on. The value 'veggie' // is assigned to a constant named fruit. define('fruit', 'veggie'); // The following is okay, as it's inside a string. Constants are not looked for// within strings, so no E_NOTICE occurs hereprint "Hello $arr[fruit]"; // Hello apple// With one exception: braces surrounding arrays within strings allows constants// to be interpretedprint "Hello {$arr[fruit]}"; // Hello carrotprint "Hello {$arr['fruit']}"; // Hello apple $arr = array('fruit' => 'apple', 'veggie' => 'carrot'); // This defines a constant to demonstrate what's going on. The value 'veggie' // is assigned to a constant named fruit. define('fruit', 'veggie'); // The following is okay, as it's inside a string. Constants are not looked for // within strings, so no E_NOTICE occurs here print "Hello $arr[fruit]"; // Hello apple // With one exception: braces surrounding arrays within strings allows constants // to be interpreted print "Hello {$arr[fruit]}"; // Hello carrot print "Hello {$arr['fruit']}"; // Hello apple
세 가지 올바른 작성 방법이 있습니다.
인덱스 문자열을 작성하는 첫 번째 방법은 따옴표를 추가하지 않는다는 의미입니다. getting 문자열 과일인 인덱스를 가진 배열 요소를 가져오면 apple이 출력됩니다.
인덱스 문자열을 작성하는 두 번째 방법은 따옴표를 추가하지 않고 동시에 배열 변수를 중괄호 { } 쌍으로 묶습니다. 이때 과일은 실제로 상수가 아닌 상수를 나타냅니다. 따라서 인덱스가 과일 상수 값인 배열 요소를 가져오는 것을 의미합니다. 상수 과일의 값은 야채이므로 당근이 출력됩니다. 세 번째 작성 방법
은 문자열을 작은따옴표로 묶고 배열 변수를 중괄호 { }로 묶는 것입니다. 이는 인덱스가 문자열 과일인 배열 요소를 가져오는 것을 의미합니다. 나중에 계속 검색하여 다음 코드 조각을 발견했습니다. // Incorrect. This works but also throws a PHP error of level E_NOTICE because
// of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit]; // apple
<pre name="code" class="php">print $arr['fruit']; // apple
// This defines a constant to demonstrate what's going on. The value 'veggie'// is assigned to a constant named fruit.define('fruit', 'veggie');// Notice the difference nowprint $arr[fruit]; // carrot
print $arr['fruit']; // apple
결론:
1. 배열 변수를 큰따옴표로 묶지 않은 경우
(1) 인덱스 문자열과 작은따옴표가 문자열 자체를 나타냅니다.<pre name="code" class="php">$arr['fruit']
$arr[fruit]
2. 배열 변수를 큰따옴표로 묶은 경우
(1) 작은따옴표가 없는 인덱스 문자열은 문자열 자체를 나타냅니다."$arr[fruit]"
"{$arr[fruit]}"
(3) 인덱스 문자열과 작은따옴표, 배열 변수와 중괄호는 문자열 자체를 나타냅니다.
<pre name="code" class="php"><pre name="code" class="php">"{$arr['fruit']}"
<pre name="code" class="php"><pre name="code" class="php">"$arr['fruit']"
PHP에서 큰따옴표로 묶인 배열 요소에 액세스할 때 발생하는 오류에 대한 해결 방법을 기반으로 한 위 기사는 모두 공유되는 내용입니다. 편집자님. 참고할 수 있기를 바랍니다! !
추천 기사:PHP 배열의 낮은 메모리 사용률에 대한 자세한 분석
PHP 배열 액세스 인터페이스 ArrayAccess에 대한 자세한 설명 예
위 내용은 PHP 큰따옴표로 배열 요소에 액세스할 때 발생하는 오류에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.
