Obiekty w tablicy

0

Witam. Uczę się php i nie mogę ogarnąć jak umieścić obiekty w tablicy? Czy w ogóle da się tak zrobić? Oto mój kod:

 
<?php
     class Ranking
     {
            public $score;
            public $zyc;
            public $rozbitych_statkow;
            public $zdobytych_nagrod;
            public $rozwalonych_nagrod;
            public $rozbitych_asteroid;
            public $nickname;
            
            public function getScores()
            {
                 return $this->score;
            }
            
            public function Inicjuj( $score, $zyc, $rozbitych_statkow, $zdobytych_nagrod, $rozwalonych_nagrod, $rozbitych_asteroid, $nickname )
            {
                 $this->score = $score;
                 $this->zyc = $zyc;
                 $this->rozbitych_statkow = $rozbitych_statkow;
                 $this->zdobytych_nagrod = $zdobytych_nagrod;
                 $this->rozwalonych_nagrod = $rozwalonych_nagrod;
                 $this->rozbitych_asteroid = $rozbitych_asteroid;
                 $this->nickname = $nickname;
            }
            
            public function show()
            {
                 echo nl2br( "\n Imie: ".$this->nickname );
                 echo nl2br( "\n Punkty: ".$this->score );
                 echo nl2br( "\n zyc: ".$this->zyc );
                 echo nl2br( "\n rozbitych_statkow: ".$this->rozbitych_statkow );
                 echo nl2br( "\n zdobytych_nagrod: ".$this->zdobytych_nagrod );
                 echo nl2br( "\n rozwalonych_nagrod: ".$this->rozwalonych_nagrod );
                 echo nl2br( "\n rozbitych_asteroid: ".$this->rozbitych_asteroid );
            }
     }

     //Odebranie danych z programu...
    $score= $_POST['score'];
    $zyc = $_POST['zyc'];
    $rozbitych_statkow = $_POST['StatkowRozbitych'];
    $zdobytych_nagrod = $_POST['zdobytych_nagrod'];
    $rozwalonych_nagrod = $_POST['rozwalonych_nagrod'];
    $rozbitych_asteroid = $_POST['rozbitych_asteroid'];
    $nickname = $_POST['nickname'];

    if ($nickname == " "){
	$nickname = "Anonim";
    }
   ///Zapisanie danych do pliku...
  /* $openFile=fopen("ranking.txt", "a+b");
      $ciagZnakow = $score."\n".$zyc."\n".$rozbitych_statkow."\n".$zdobytych_nagrod."\n".$rozwalonych_nagrod."\n".$rozbitych_asteroid."\n".$nickname."\n";
      fwrite($openFile, $ciagZnakow);
   fclose($openFile);    */
   
   ///odczyt tabeli...
   $plik = fopen("ranking.txt", 'r');
   
   //Tablica rankingu
   $rank = array();
   //Licznik tablicy
   $i = 0;
   
   while ( !feof( $plik ) ) {
         $rank[$i] = new Ranking;
         $rank[$i]->Inicjuj( fgets( $plik ), fgets( $plik ), fgets( $plik ), fgets( $plik ), fgets( $plik ), fgets( $plik ), fgets( $plik ) );
         ++$i;
   }
   fclose( $plik );

   for ( $j = 0; $j < $i; ++$j ) {
       $rank[$j]->show();
   }
   ///sortowanie
   for ( $k = 0; $k < $i; ++$k ) {
       for ( $j = $i - 1; $j >= $k; --$j ) {
           if ( $rank[ $j - 1 ]->getScores() > $rank[ $j ]->getScores() ){
              list( $rank[$j - 1], $rank[$j] ) = array( $rank[$j], $rank[$j - 1] );
           }
       }
   }
   
   for ( $j = 0; $j < $i; ++$j ) {
       $rank[$j]->show();
   }
   
   ///zapis do pliku...
?>

Wywala mi błąd w linijce:

 
if ( $rank[ $j - 1 ]->getScores() > $rank[ $j ]->getScores() ){

co jest nie tak? Gdzie jest błąd?
Z GÓRY DZIĘKUJE ZA POMOC :)

1

Nie sprawdzałem ale na oko sprawdź czy czasem $rank[ $j - 1 ] nie powoduje wyjście poza index tablicy czyli czy $j ma nie mniej niż 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1