Model differences between PHP4 and PHP5

Discussion in 'PHP' started by obiron, Jun 13, 2007.

  1. #1
    Guys this is my code..

    $Results->Drivers=  $this->F1_drivers_model->get_alldrivers(); // this gets an array of objects that is just the record IDs
          foreach   ($Results->Drivers as $loop)
          {
            $loop->Name = $this->F1_drivers_model->get_drivername($loop->ID);
            $loop->Cost = $this->F1_drivers_model->get_drivercost($loop->ID);
            $loop->TeamID = $this->F1_drivers_model->get_driverteam($loop->ID);
            $loop->TeamName = $this->F1_drivers_model->get_driverteamname($loop->ID);
    
           var_dump($loop);
          }
    PHP:
    in PHP5 I get this:

    object(stdClass)#17 (5) { ["ID"]=> string(1) "1" ["Name"]=> string(8) "F Alonso" ["Cost"]=> string(2) "24" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    --------------------------------------------------------------------------------
    object(stdClass)#18 (5) { ["ID"]=> string(1) "2" ["Name"]=> string(10) "L Hamilton" ["Cost"]=> string(2) "11" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    --------------------------------------------------------------------------------
    object(stdClass)#19 (5) { ["ID"]=> string(1) "3" ["Name"]=> string(7) "F Massa" ["Cost"]=> string(2) "20" ["TeamID"]=> string(1) "2" ["TeamName"]=> string(9) " Ferrari " }
    --------------------------------------------------------------------------------
    object(stdClass)#20 (5) { ["ID"]=> string(1) "4" ["Name"]=> string(11) "K Raikkonen" ["Cost"]=> string(2) "21" ["TeamID"]=> string(1) "2" ["TeamName"]=> string(9) " Ferrari " }
    Code (markup):
    in PHP4 I get this:

    object(stdClass)(5) { ["ID"]=> string(1) "1" ["Name"]=> string(8) "F Alonso" ["Cost"]=> string(2) "24" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    --------------------------------------------------------------------------------
    object(stdClass)(5) { ["ID"]=> string(1) "2" ["Name"]=> string(10) "L Hamilton" ["Cost"]=> string(2) "11" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    --------------------------------------------------------------------------------
    object(stdClass)(5) { ["ID"]=> string(1) "3" ["Name"]=> string(7) "F Massa" ["Cost"]=> string(2) "20" ["TeamID"]=> string(1) "2" ["TeamName"]=> string(8) " Ferrari" }
    --------------------------------------------------------------------------------
    object(stdClass)(5) { ["ID"]=> string(1) "4" ["Name"]=> string(11) "K Raikkonen" ["Cost"]=> string(2) "21" ["TeamID"]=> string(1) "2" ["TeamName"]=> string(8) " Ferrari" }
    --------------------------------------------------------------------------------
    object(stdClass)(5) { ["ID"]=> string(1) "5" ["Name"]=> string(10) "N Heidfeld" ["Cost"]=> string(2) "10" ["TeamID"]=> string(1) "3" ["TeamName"]=> string(10) "BMW Sauber" }
    Code (markup):
    What is the difference? (and don’t say that one has numbers objects!!)

    Im using CodeIgniter to separate the MVC. The above is in the controller, below is in the view. $Results has been passed to the view as part of a key=>value array and is converted back into a variable internally by CI.


    When passing $Results through to the view, in PHP5 the data object contains the values set in $loop. (line breaks added for readability)

    Arrayarray(22) {
    [0]=> object(stdClass)#17 (5) { ["ID"]=> string(1) "1" ["Name"]=> string(8) "F Alonso" ["Cost"]=> string(2) "24" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    [1]=> object(stdClass)#18 (5) { ["ID"]=> string(1) "2" ["Name"]=> string(10) "L Hamilton" ["Cost"]=> string(2) "11" ["TeamID"]=> string(1) "1" ["TeamName"]=> string(7) "McLaren" }
    [2]=> object(stdClass)#19 (5) { ["ID"]=> string(1) "3" ["Name"]=> string(7) "F Massa" ["Cost"]=> string(2) "20" ["TeamID"]=> string(1) "2" ["TeamName"]=> string(9) " Ferrari " }
    [3]=> object(stdClass)#20 (5) { ["ID"]=> string(1) "4" ["Name"]=> string(11) "K Raikkonen" ["Cost"]=> string(2) "21" ["TeamID"]=> string(1) ...
    Code (markup):
    but in PHP4 it does not (line breaks added for readability)

    Arrayarray(22) {
    [0]=> object(stdClass)(1) { ["ID"]=> string(1) "1" }
    [1]=> object(stdClass)(1) { ["ID"]=> string(1) "2" }
    [2]=> object(stdClass)(1) { ["ID"]=> string(1) "3" }
    [3]=> object(stdClass)(1) { ["ID"]=> string(1) "4" }
    [4]=> object(stdClass)(1) { ["ID"]=> string(1) "5" }
    [5]=> object(stdClass)(1) { ["ID"]=> ...
    Code (markup):
    How do I pass these values through in PHP4? Do I need to explicitly create instances of the object and if so how do I do that inside the $Results array?
     
    obiron, Jun 13, 2007 IP