За последние 24 часа нас посетил 17821 программист и 1704 робота. Сейчас ищут 967 программистов ...

Добавить в свойство объекта - массив

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

  1. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Как это сделать?
    В домашнем задании по ООП, в теме "Наследование" предлагается создать класс "Программист", а в свойства добавить массив языков программирования, которые знает данный объект.

    С обычными типами (числа, текст) проблем вообще не возникает. А вот массив не получается передать свойству. Подскажите решение.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Вообще это делается так же как и с обычными типами. Показывай как умеешь.
     
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Ты знаешь как создать массив ?

    PHP:
    1. // Наверно вот так да $newArray = array();
    2. // Или вот так $newArray = [];
    3.  
    4. А теперь если у тебя свойства объектов  создаются например вот так да
    5.  
    6. Class Clas {
    7.        public $newArray = // И что тут нужно написать чтобы массив сделать ?
    8.  
    9.  
    10. // Допустим справились. А теперь нам его же блин нужно блин какими - то значениями забить да?
    11.  
    12. public function methodNewArray ($Arr) {
    13.         // А теперь загугли как правильно вызываются свойства класса в самом классе или дочерних классах этого класса
    14.   Тут_Твоё_Свойство_Класса = $Arr
    15. // Где $Arr = Это массив который ты передаёшь в метод класса
    16. // Вот и вся твоя задача.
    17.  
    18.  
    19. }
    20. // А если вдруг тебе нужно забивать массив постепенно например с каждым вызовом метода ты добавляешь один элемент массива...
    21. // То тут тоже нет не чего страшного
    22.  
    23. public function methodOne ($key, $value) {
    24.      Опять_Же_Вызов_Твоего_Свойства->$newArray[$key] = $value;
    25.      // Ну вот и тоже всё :) Элементарно не правда ли?)
    26.  
    27. }
    28.  
    29. // Опа надо его вернуть массив О_О
    30.  
    31. public function methodTwo () {
    32.              
    33.       return Твоё_Свойство; // Где твоё свойство заменишь на правильнчй вызов твоего свойства в который ты ложишь массив
    34.  
    35. }
    36.  
    37.  
    38.  
    39. }
     
    #3 askanim, 19 июн 2016
    Последнее редактирование: 19 июн 2016
  4. Igorby

    Igorby Новичок

    С нами с:
    30 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    В общем-то получилось :) Вот пример с методом добавления языка в массив. Спасибо за внимание.
    Код (Text):
    1. class Programmist {
    2.  
    3. public $lang;
    4. public $opyt;
    5.  
    6. public function __construct ($lang, $opyt) {
    7. $this->lang = $lang;
    8. $this->opyt = $opyt;
    9. }
    10.  
    11. public function getLang () {
    12. return $this->lang;
    13. }
    14.  
    15.  
    16. public function setLang ($lang) {
    17. $this->lang = $lang;
    18. [QUOTE="askanim, post: 473771, member: 60045"]Ты знаешь как создать массив ?
    19.  
    20. [php]// Наверно вот так да $newArray = array();
    21. // Или вот так $newArray = [];
    22.  
    23. А теперь если у тебя свойства объектов  создаются например вот так да
    24.  
    25. Class Clas {
    26.        public $newArray = // И что тут нужно написать чтобы массив сделать ?
    27.  
    28.  
    29. // Допустим справились. А теперь нам его же блин нужно блин какими - то значениями забить да?
    30.  
    31. public function methodNewArray ($Arr) {
    32.         // А теперь загугли как правильно вызываются свойства класса в самом классе или дочерних классах этого класса
    33.   Тут_Твоё_Свойство_Класса = $Arr
    34. // Где $Arr = Это массив который ты передаёшь в метод класса
    35. // Вот и вся твоя задача.
    36.  
    37.  
    38. }
    39. // А если вдруг тебе нужно забивать массив постепенно например с каждым вызовом метода ты добавляешь один элемент массива...
    40. // То тут тоже нет не чего страшного
    41.  
    42. public function methodOne ($key, $value) {
    43.      Опять_Же_Вызов_Твоего_Свойства->$newArray[$key] = $value;
    44.      // Ну вот и тоже всё :) Элементарно не правда ли?)
    45.  
    46. }
    47.  
    48. // Опа надо его вернуть массив О_О
    49.  
    50. public function methodTwo () {
    51.            
    52.       return Твоё_Свойство; // Где твоё свойство заменишь на правильнчй вызов твоего свойства в который ты ложишь массив
    53.  
    54. }
    55.  
    56.  
    57.  
    58. }[/php][/QUOTE]
    59.  
    60. }
    61. }
    62.  
    63. $programmist = new Programmist (array("php", "javascript"), 3);
    64. echo $programmist->getLang()[0]."<br />";
    65. $programmist->setLang(array("php2", "javascript2", "c++"));
    66. echo $programmist->getLang()[2]."<br />";
    Интересно. Задача была немного проще, но ваш метод обязательно разберу :) Спасибо. Очень полезно.
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Да пожалуйста) Обращайся.) А вообще оформляй пожалуйста сообщения правильно. А то читать не очень как то так. в сером цвете всё. Это же не текст :) Это код) И привыкни создавать массив в php вот так
    PHP:
    1. $array =  [];
    Очень удобно, честно :)
     
  6. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Ну, если работать на хостинге с PHP <= 5.3, то так не прокатит.
    Я сейчас поддерживаю один сайт, там вообще смех и слезы, РНР 4.4
     
    askanim и denis01 нравится это.
  7. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Ну.... Кончай балаганом заниматься предложи перепесать, его. и напиши его на 5,6 - 7,0
     
  8. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Да нафиг надо, там и 4.4. вполне хватает. Раньше-то это вообще голый html был, код там только с моим приходом появился.
     
    denis01 нравится это.