За последние 24 часа нас посетили 202956 программистов и 2182 робота. Сейчас ищут 1686 программистов ...

Помогите разобраться с наследуемым классом

Тема в разделе "PHP для новичков", создана пользователем skv_79, 20 июл 2009.

  1. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    Здравствуйте, сейчас изучаю объекты и не пойму в чем моя ошибка.
    Вот листинг:
    Код (Text):
    1. <html>                                                                                                         
    2. <head>
    3. <title>Учусь</title>
    4. </head>
    5.     <body>            
    6.         <?php  
    7.             class Table
    8.                 {
    9.                 var $table_array = array ();
    10.                 var $headers = array ();
    11.                 var $cols;
    12.                 function Table ( $headers )
    13.                     {
    14.                     $this->headers = $headers;
    15.                     $this->cols = count ( $headers );
    16.                     }
    17.                 function addRow ( $row )
    18.                     {
    19.                     if ( count ( $row ) != $this->cols )
    20.                         return false;
    21.                     array_push ( $this->table_array, $row );
    22.                         return true;
    23.                     }
    24.                 function addRowAssocArray ( $row_assoc )
    25.                     {
    26.                     $row = array ();
    27.                     foreach ( $this->headers as $header )
    28.                         {
    29.                         if ( ! isset ( $row_assoc[$header] ) )
    30.                             $row_assoc[$header] = "";
    31.                             $row[] = $row_assoc [$header];
    32.                         }
    33.                     array_push ( $this->table_array, $row);
    34.                     return true;
    35.                     }
    36.                 function output ()
    37.                     {
    38.                     print "<pre>";
    39.                     foreach ( $this->headers as $header )
    40.                         print "<b>$header</b>";
    41.                     print "\n";
    42.                     foreach ( $this->table_array as $y )
    43.                         {
    44.                         foreach ( $y as $xcell )
    45.                             print "$xcell ";
    46.                     print "\n";
    47.                         }
    48.                     print "</pre>";
    49.                     }
    50.                 }
    51.             class HTMLTable extends Table
    52.                 {
    53.                 var $bgcolor;
    54.                 var $cellpadding = "2";
    55.                 function HTMLTable ( $headers, $bg="#ffffff" )
    56.                     {
    57.                     Table::Table ( $headers );
    58.                     $this->bgcolor=$bg;
    59.                     }
    60.                 function setCellpadding ( $padding )
    61.                     {
    62.                     $this->cellpadding = $padding;
    63.                     }
    64.                 function output ()
    65.                     {
    66.                     print "<table cellpading= \"$this->cellpadding\" border= 1>;
    67.                     foreach ( $this->headers as $header )
    68.                         {
    69.                         print ( "<td bgcolor=\"$this-> bgcolor\"><b>$header</b></td>" );
    70.                             }
    71.                     foreach ( $this->table_array as $row=>$cells )
    72.                         {
    73.                         print "<tr>";
    74.                         foreach ( $cells as $cell )
    75.                             print "<td bgcolor=\"$this-> bgcolor\"> $cell </td>";
    76.                         print "</tr>";
    77.                         }
    78.                     print "</table>";
    79.                     }
    80.                 }
    81.             $test = new HTMLTable ( array ( "a","b","c" ), "#00FF00" );
    82.             $test->setCellpadding ( 7 );
    83.             $test->addRow ( array ( 1,2,3 ) );
    84.             $test->addRow ( array ( 4,5,6 ) );
    85.             $test->addRowAssocArray ( array ( b=>0, a=>6, c=>3 ) );
    86.             $test->output ();  
    87.         ?>
    88.     </body>                        
    89. </html>
    Интерпретатор выводит на данный листинг вот эту ошибку:
    Код (Text):
    1. Parse error: syntax error, unexpected T_STRING in Z:\home\localhost\www\list08-09.php on line 69
    А я что-то совсем не пойму, где у меня синтаксическая ошибка...
     
  2. в 69 строке.
     
  3. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    понятно, что в 69 строке, но вот где и что? Долго и упорно смотрел я на эту 69 строку, так и не понял в чем ошибка
    Код (Text):
    1. print ( "<td bgcolor=\"$this-> bgcolor\"><b>$header</b></td>" );
     
  4. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    в смысле пробел?
    убрал все пробелы, ошибка не исчезла
    Код (Text):
    1. print ("<td bgcolor=\"$this->bgcolor\"><b>$header</b></td>");
     
  5. PHP:
    1. <? print ("<td bgcolor=\"{$this->bgcolor}\"><b>$header</b></td>");
     
  6. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    не пойму, хоть убей ))
    Код (Text):
    1. print ("<td bgcolor=\"{$this->bgcolor}\"><b>$header</b></td>");
    все равно ошибка в 69 та же...
    а зачем нужно записывать специальный указатель $this и обращение к свойству bgcolor в фигурные скобки?
     
  7. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    спасибо
     
  8. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    skv_79
    в 66 вроде нет закрывающей кавычки
     
  9. skv_79

    skv_79 Активный пользователь

    С нами с:
    20 июл 2009
    Сообщения:
    26
    Симпатии:
    0
    Спасибо большое кавычку поставил и все заработало