2017-05-18 1 views
0

정말 이상합니다. 정의되지 않은 인덱스 란 무엇인지 알고 있습니다. 그러나이 코드를보십시오. 다음 수업 시간에 나는이있어 알림 : 정의되지 않은 색인 : loss_items

$__load = array(
    'loss_experience' => NULL, 
    'loss_items' => NULL, 
    'guild_info' => NULL, 
    'skull_type' => NULL, 
    'skull_time' => NULL, 
    'blessings' => NULL, 
    'direction' => NULL, 
    'stamina' => NULL, 
    'world_id' => NULL, 
    'online' => NULL, 
    'deletion' => NULL, 
    'promotion' => NULL, 
    'marriage' => NULL 
); 

:

public function load($id) 
    { 
     global $__load; 

     if($__load['loss_experience'] == NULL) 
     { 
      $loss = ''; 
      if(fieldExist('loss_experience', 'players')) { 
       $loss = ', `loss_experience`, `loss_mana`, `loss_skills`'; 
      } 

      $__load['loss_experience'] = $loss; 
     } 

     if($__load['loss_items'] == NULL) 
     { 
      $loss_items = ''; 
      if(fieldExist('loss_items', 'players')) { 
       $loss_items = ', `loss_items`, `loss_containers`'; 
      } 

      $__load['loss_items'] = $loss_items; 
     } 

을하고이 오류가 내가 될 :

Notice: Undefined index: loss_items in D:\xampp\htdocs\myaac\system\libs\pot\OTS_Player.php on line 145 

내가 스크립트의 상단에있어 무엇인가

행 145는 다음과 같습니다.

if($__load['loss_items'] == NULL) 

내가 뭘 잘못 했니?

$__load['loss_experience'] = $loss; 

그런 다음 공지가 보여되지 않습니다

내가이 줄을 주석

. 하지만 그것을 선언해야합니다.

@Edit I 해봤이 :

public function load($id) 
    { 
     global $__load; 
var_dump($__load); 
     if($__load['loss_experience'] == NULL) 
     { 
      $loss = ''; 
      if(fieldExist('loss_experience', 'players')) { 
       $loss = ', `loss_experience`, `loss_mana`, `loss_skills`'; 
      } 

      $__load['loss_experience'] = $loss; 
     } 
var_dump($__load); 
     if($__load['loss_items'] == NULL) 
     { 

제 위해서 var_dump의 출력은 : NULL

둘째 위해서 var_dump : 어레이 (1) {[ "loss_experience"] => 스트링 (0) ""}

따라서 $ __로드 변수가 맨 위에 표시되지는 않지만 그 이유는 무엇입니까?

+0

테스트 결과 내 측면에서 정상적으로 작동합니다. 'var_dump ($ __ load);를 실행 해보십시오. – Ibu

+0

함수를 public으로 선언하고 있습니다 - 이것은 클래스 메소드입니까? 그렇다면 왜'$ __load'를 private 변수로 만들고 대신 $ this -> __load'를 사용합니까? –

+0

내 게시물을 편집했습니다. 나는 당신이 말한 것을 시도했고 그것이 내 선언 변수를 보지 못했다. – slawkens

답변

1

'정의되지 않은 색인'은 연관 배열 '__load'의 해당 요소에 값을 저장하지 않았 음을 의미합니다. null로 설정할 때 실제로 정의하지 않았습니다.

== null을 테스트하는 대신! isset()을 사용하십시오.

경고 일 뿐이므로 코드를 위반하지 않습니다.

+0

고마워요! 당신이 옳았. 그것은 효과가 있었다. – slawkens

관련 문제