2012-12-19 4 views
1

가능한 중복 :
PHP: “Notice: Undefined variable” and “Notice: Undefined index”초보자 용 PHP. 이 색인이 정의되지 않은 이유는 무엇입니까?

나는 문서를 통해 미끄러 져 한이 사이트 여전히 확실하지. 내가 드루팔 7

이 코드와 변수를 인쇄 함께 일하고 있어요 :

<?php print $info['comments'] ?> 

제로 의견이있는 경우 나

Notice: Undefined index as a message. 

이 존재하는 경우, 올바른 #을 인쇄를 얻을.

어떤 도움

주시면 감사하겠습니다. 주석이 없으면 0으로 표시되도록 설정하는 방법은 무엇입니까?

감사합니다.

+0

:

그런 일을 방지하기 위해, 당신은 뭔가를 할 수 있습니다. 그 이상은 아닙니다. 당신은 우리에게 어떤 상황을 주거나, 당신이 도움을 원한다면, 당신이하려고하는 것에 대한 예를 보여줘야합니다. –

답변

5

상관없이 정수를 인쇄하지 않으려면 무엇을 :

<?php print @intval($info['comments']) ?> 

또는 취소 불능 통지 억제 : 배열이있는 경우

<?php print isset($info['comments']) ? $info['comments'] : 0 ?> 
1

PHP 배열 따라서 당신은 키/값의 모든 종류로 구성된 배열을 가질 수 본질적으로 연관됩니다

arry['stringkey'] = 'somestring'; 
arry[1] = 'some other string'; 
etc.. 

당신은 시도하지 않고 존재하지 않는 배열 인덱스를 참조한다면 어떤 오류 검사를 수행하든간에

if(arry[2] == 'some third string') 

'정의되지 않은 색인'오류가 발생합니다. 솔루션에 대해서는 isset() 함수를 살펴보십시오.

+0

예제에서 여전히 "정의되지 않은 색인"오류가 발생합니다. 평등을 검사하기 전에 반드시 isset를 검사해야합니다. – hackattack

+0

@hackattack 제 대답을 다시 읽어주십시오. – ryanbwork

+0

예를 들어 적절한 오류 확인 또는 오류를 일으키는 예가 무엇인지 분명하지 않으면 알려주십시오. 나는 지금 그 것을 보았다, 이전의, 미안. – hackattack

0

당신은 테스트 수를 키 그 :

if (array_key_exists('comments', $info)) { 
... 
} 

그러나 그것이 당신이 정말로하고 싶은 일인지 확신 할 수 없습니다.

2

drupal을 모르며 컨텍스트를 정확히 알지 못하지만 배열에없는 인덱스에 액세스하려고하면 이러한 종류의 통지가 표시됩니다. 정의되지 않은 인덱스 그냥 정의되지 않은 인덱스

if(isset($info['comments'])) { 
    print $info['comments']; 
} 
관련 문제