За последние 24 часа нас посетили 18724 программиста и 1702 робота. Сейчас ищут 938 программистов ...

в чем ошибка не пойму

Тема в разделе "Прочие вопросы по PHP", создана пользователем souta, 18 июн 2013.

  1. souta

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

    С нами с:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Код (Text):
    1. interface С
    2. {
    3.     function s($array_s);
    4. }
    5. abstract class A
    6. {
    7.     protected $s = array();
    8. }
    9.  
    10. class Free_sit extends A implements С
    11. {
    12.     //protected $s = array(); from parent class
    13.     function _construct($array_s)
    14.         {
    15.         $this->$s = $array_s;
    16.         $this-> s($this->$s);
    17.         }
    18.     function s($sts)
    19.     {
    20.         echo $sts[0];
    21.     }
    22. }
    23. $mas = array('element');
    24. new Free_sit($mas);
    ничего не показывает. конструктор не работает что ли? или я что-то не так сделал
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Что за байда?

    1) implements S Где S
    2) $this->$s что это?
    3) Дай нормальные имена
     
  3. souta

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

    С нами с:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    в вот так работает
    Код (Text):
    1.  
    2. interface С
    3. {
    4. function s($array_s);
    5. }
    6. abstract class A
    7. {
    8. protected $s = array();
    9. }
    10.  
    11. class Free_sit extends A implements S
    12. {
    13. //protected $s = array(); from parent class
    14. function cons($array_s)
    15. {
    16. $this->$s = $array_s;
    17. $this-> s($this->$s);
    18. }
    19. function s($sts)
    20. {
    21. echo $sts[0];
    22. }
    23. }
    24. $mas = array('element');
    25. $a = new Free_sit; $a->cons(mas);
    Добавлено спустя 43 секунды:
    имена то в моем коде нормальные, это я просто чтоб сюда написать изменил)))))

    Добавлено спустя 1 минуту 57 секунд:
    ой ой да ошибся, но тока когда сюда переносил. щас исправил, но тока все равно не работает он
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Что то я не догоняю как он может работать правильно если у тебя нет интерфейса S.
    Кажись ты сам уже запутался что здесь написал и что в реале...

    Короч я рад за тебя, будут вопросы пиши:)
     
  5. souta

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

    С нами с:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Код (Text):
    1. interface С
    2. {
    3.     function s($array_s);
    4. }
    5. abstract class A
    6. {
    7.     protected $s = array();
    8. }
    9.  
    10. class Free_sit extends A implements С
    11. {
    12.     //protected $s = array(); from parent class
    13.     function __construct($array_s)
    14.         {
    15.         $this->s = $array_s;
    16.         $this-> s($this->s);
    17.         }
    18.     function s($sts)
    19.     {
    20.         echo $sts[0];
    21.     }
    22. }
    23. $mas = array('element');
    24. new Free_sit($mas);
    вот я нашел ошибку))) перед кострак два подчеркивания , а у меня 1 было. и еще было $this->$s = $array_s; $this-> s($this->$s);, а нужно $this->s = $array_s; $this-> s($this->s); спасибо всем))
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    что делает эта строка? зачем тут пробел перед s?
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Дурдом.
     
  8. kosinus2012

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

    С нами с:
    16 июл 2012
    Сообщения:
    137
    Симпатии:
    0
    Может равносильно этому? $this->s($array_s)
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    пробел побоку
    эта строка в функцию s сует массив s

    функция:
    interface С
    {
    function s($array_s);
    }


    массив:
    abstract class A
    {
    protected $s = array();
    }
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ну да. показалось что на пробел ругаться должно. глючю
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    даже если это просто набросок, не помешает выучить еще пару букв :D