I have the following code in part of a loop:
$max = $players->max();

Important parts of players class:
class Players extends dynamicTable {
   var $setup;
   var $lid;
   var $size;
   var $max;
   var $data;
   var $data_result;
   var $data_index;
   var $player_stats_result;
   var $player_stats_data;
   var $player_stats_index;
   var $player_stats_start;
   var $player_type_result;

   function Players($lid) {
      global $prefix, $db;

      /*
       * Find max size of rows
       */

      $this->lid = $lid;
      $this->max=0;
        echo "$this->index";
      $result = $db->sql_query("select * from " . $prefix .
"_league_games_setup where lid = $lid");
      while (($rows = $db->sql_fetchrow($result))) {
         $c=0;
         for ($i=3; $i < 23; $i++) {
          if ($rows[$i] != "")
             $c++;
         }
         if ($c > $this->max)
            $this->max = $c;
      }

      $this->index = 3;
   }


   function max() {
        return ($this->max);


The most important part of this code to me is:
$this->index = 3;
It is important that this is reset to 3 for the rest of the loop to work
properly.
In PHP4, $this->index is reset to 3 each time the loop happens, but in
PHP5 it is not.
It appears that after the first loop, PHP5 seems to "remember" the value
of $this->max and therefore does not enter the Players function to set
$this->index = 3. I have run through the script with a debugger, and sure
enough, we only enter function Players once.

Is this normal behaviour for PHP5 vs PHP4?
Is there a way for me to force $this->max to be calculated each time
function max is called?


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to