ФорумПрограммированиеPHP для идиотовPHP и ООП → Проблемы с конструктором

Проблемы с конструктором

  • fenix

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2010 г. 19:14

    Есть два класса, причем один расширяет другой. Есть такой конструктор:

    function __construct($data_array){
    $this -> data = $data_array;
    //Тестируем
    foreach ($this -> data as $param){
    print $param."<br>";
    }
    }

    Если он размещен в главном классе, а в дочернем написанно "parent::__construct();" то выдается такая ошибка:

    Warning: Missing argument 1 for Controller::construct(), called in S:\home\dev\www\system\controllers\blog.php on line 9 and defined in S:\home\dev\www\system\controller.php on line 8
    Notice: Undefined variable: data_array in S:\home\dev\www\system\controller.php on line 9

    blog.php on line 9 - это строка "parent::__construct();"
    controller.php on line 8 - функция в главном классе

    Но, если разместить код конструктора в сам дочерний класс то все работает.
    Объясните пожалуйста из-за чего это может быть и как это исправить.
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:18, спустя 3 минуты 54 секунды

    Объясните пожалуйста из-за чего это может

    Missing argument 1 for Controller::construct()

    ни о чем не говорит ?
    если о чемто говорит, то на вопрос
    как это исправить

    вы сможете ответить сами
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2010 г. 19:18, спустя 4 секунды

    Всё верно. Вы вызываете конструктор без аргумента.
  • fenix

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2010 г. 19:24, спустя 6 минут 9 секунд

    Как раз таки с аргументом. Вот в че проблема.
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:28, спустя 3 минуты 47 секунд

    ну так вы наверное покажите как вы его там вызываете…
  • fenix

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2010 г. 19:32, спустя 3 минуты 37 секунд

    <?php 
    class blog extends Controller {

    function __construct($data_array){
    /*$this -> data = $data_array;
    foreach ($this -> data as $param){
    print $param."<br>";
    }*/
    parent::construct();
    }
    }

    ?>



    <?php

    class Controller {

    protected $data = array();


    function construct($data_array){
    $this -> data = $data_array;
    foreach ($this -> data as $param){
    print $param."<br>";
    }
    }


    }

    ?>

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:34, спустя 2 минуты 39 секунд


    <?php 
    class blog extends Controller {

    function __construct($data_array){
    /*$this -> data = $data_array;
    foreach ($this -> data as $param){
    print $param."
    ";
    }*/
    parent::construct();
    }
    }

    ?>



    <?php

    class Controller {

    protected $data = array();


    function construct($data_array){
    $this -> data = $data_array;
    foreach ($this -> data as $param){
    print $param."
    ";
    }
    }


    }

    ?>


    спасибо, поплакал
    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:35, спустя 23 секунды

    parent::construct();

    ну, а параметры кто передавать будет ?
  • fenix

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2010 г. 19:38, спустя 2 минуты 59 секунд

    Спасибо.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:41, спустя 2 минуты 51 секунду


    Спасибо.
    вам спасибо, я правда поплакал :'(
    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:45, спустя 4 минуты 3 секунды



    Спасибо.
    вам спасибо, я правда поплакал :'(
    порыдал ? :D
    или поплакал ? ;(
    Спустя 64 сек.
    ТЫ БЕЗДУШНАЯ СКАТИНА ЕСЛИ НЕ ПЛАКАЛ НА ЭТОМ МОМЕНТЕ!!!!11
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 23 февраля 2010 г. 19:48, спустя 3 минуты 7 секунд

    NRG, ааааа …. не ори на меня я хочу сдохнуть … .ааааа рыдаю аааааААааа!!!! я ЭМО
    Сапожник без сапог
  • fenix

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 25 февраля 2010 г. 16:44, спустя 1 день 20 часов 56 минут


    вам спасибо, я правда поплакал :'(

    Почему?
  • ЗлобныйТролль

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 25 февраля 2010 г. 17:03, спустя 18 минут 56 секунд



    вам спасибо, я правда поплакал :'(

    Почему?


    От умиления, видимо.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!