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

классы + php5

  • noob1k

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

    Spritz 16 декабря 2010 г. 14:06

    http://radikal.ru/F/s57.radikal.ru/i157/1012/5d/c88573785565.jpg.html

    помогите решить вот эту задачку на php 5 пожалуйста.. Либо посоветуйте ход действии в решении данной задачи. заранее благодарен
  • Sinkler

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

    Spritz 16 декабря 2010 г. 14:25, спустя 18 минут 52 секунды

    я не дождался открытия))))
  • Абырвалг

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

    Spritz 16 декабря 2010 г. 14:43, спустя 18 минут 19 секунд

    итак, вот

    <?php

    class ОбластьИсследования
    {
    protected $наименование;

    protected $работы;

    public function __construct($наименование)
    {
    $this->наименование = $наименование;
    $this->работы = array();
    }

    public function получитьНаименование()
    {
    return $this->наименование;
    }

    public function присоеденитьРаботу(НаучноИсследовательскаяРазработка $работа)
    {
    $this->работы[spl_object_hash($работа)] = $работа;

    return $this;
    }

    public function получитьРаботы()
    {
    return $this->работы;
    }
    }

    class НаучноИсследовательскаяРазработка
    {
    protected $наименование;
    protected $датаНачала;
    protected $датаОкончания;
    protected $областьИсследования;
    protected $сотрудники;

    public function __construct($наименование, $датаНачала, $датаОкончания, ОбластьИсследования $областьИсследования)
    {
    $this->наименование = $наименование;
    $this->датаНачала = $датаНачала;
    $this->датаОкончания = $датаОкончания;
    $this->областьИсследования = $областьИсследования->присоеденитьРаботу($this);
    $this->сотрудники = array();
    }

    public function получитьНаименование()
    {
    return $this->наименование;
    }

    public function получитьНаименованиеОбластиИсследования()
    {
    return $this->областьИсследования->получитьНаименование();
    }

    public function добавитьСотрудника($имя)
    {
    $this->сотрудники[] = $имя;

    return $this;
    }

    public function получитьСотрудников()
    {
    return $this->сотрудники;
    }
    }

    $работы = array();
    $области = array();

    $области[] = $агрономия = new ОбластьИсследования('Агрономия');
    $области[] = $космонавтика = new ОбластьИсследования('Космонавтика');

    $работа = new НаучноИсследовательскаяРазработка('Исследование озимых', '20.11.2003', '31.08.2004', $агрономия);
    $работа->добавитьСотрудника('Петров');
    $работа->добавитьСотрудника('Козлов');
    $работа->добавитьСотрудника('Козин');
    $работы[] = $работа;

    $работа = new НаучноИсследовательскаяРазработка('Увеличение плодовитости вишневых деревьев', '10.04.2004', '03.06.2004', $агрономия);
    $работа->добавитьСотрудника('Абрикосов');
    $работа->добавитьСотрудника('Хуев');
    $работы[] = $работа;

    $работа = new НаучноИсследовательскаяРазработка('Создание колонии на Луне', '20.11.2005', '31.08.2005', $космонавтика);
    $работа->добавитьСотрудника('Титов');
    $работа->добавитьСотрудника('Терешкова');
    $работа->добавитьСотрудника('Стрелка');
    $работа->добавитьСотрудника('Жучка');
    $работы[] = $работа;

    foreach ($работы as $работа) {
    echo 'В работе "' . $работа->получитьНаименование() . '" принимает участие ' . count($работа->получитьСотрудников()) . ' сотрудников' . PHP_EOL;
    }

    foreach ($области as $область) {
    echo 'В области исследования "' . $область->получитьНаименование() . '" ' . count($область->получитьРаботы()) . ' работ' . PHP_EOL;
    }



    устал переключать раскладки) У меня тем более дома холодрыга реальная, руки ваще еле по клавишам попадают
  • noob1k

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

    Spritz 16 декабря 2010 г. 14:47, спустя 4 минуты

    спасибо, тебе большое.. щас буду разбирать код)

    что означает "PHP_EOL" и символ "."(присоединение?!) в коде?
  • truth4oll

    Сообщения: 463 Репутация: N Группа: Адекваты

    Spritz 16 декабря 2010 г. 14:57, спустя 9 минут 27 секунд

    noob1k, перенос строки
  • noob1k

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

    Spritz 16 декабря 2010 г. 14:59, спустя 1 минуту 56 секунд

    спасиб за ответ)

    пользователю Абырвалг - отдельный респект!)
  • noob1k

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

    Spritz 19 декабря 2010 г. 13:33, спустя 2 дня 22 часа 34 минуты

    [spl_object_hash($работа)] – а что собственно делает команда spl_object_hash? в инете нет описания на русском данной команды.. можно ее заменить какой нибудь другой командой?? а то мы такие команды как то не проходили.. и оч подозрительно выходит)
  • mario

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

    Spritz 19 декабря 2010 г. 13:40, спустя 7 минут 6 секунд

    spl_object_hash

    возвращает уникальный идентификатор объекта. И как так нету описания? Оо [man]spl_object_hash[/man]
    Спустя 54 сек.
    неужели так трудно перевести 6 слов?
  • noob1k

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

    Spritz 19 декабря 2010 г. 13:45, спустя 4 минуты 34 секунды

    а можно его как нить другой командой заменить? как нить такими командами как (get_object_vars) и т.д.)?
  • mario

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

    Spritz 19 декабря 2010 г. 13:46, спустя 1 минуту 45 секунд

    зачем?
  • noob1k

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

    Spritz 19 декабря 2010 г. 13:48, спустя 2 минуты 9 секунд

    не согу грамотно ей объяснить про эту команду. если замнусь - поймет что не сам делал, и пошлет куда подальше.
  • mario

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

    Spritz 19 декабря 2010 г. 13:52, спустя 3 минуты 22 секунды


    не согу грамотно ей объяснить про эту команду. если замнусь - поймет что не сам делал, и пошлет куда подальше.
    бля… описание команды состоит из 6 слов, хуле там объяснять?! А используем её для того, что бы получить гарантированный уникальный идентификатор объекта, всё больше объяснять тут нехуй…
    Спустя 49 сек.
    итак, вот

    нахуй ты это сделал?! Оказал челу медвежую услугу ;) Он один хуй не научится с этого примера нихуя… )))
    Спустя 20 сек.
    Короче, это пиздец :) Тему в хайд )
  • noob1k

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

    Spritz 19 декабря 2010 г. 13:54, спустя 2 минуты 21 секунду

    :)) ок.. нужно будет заучить эти 6 строч290
    Спустя 127 сек.
    ну его нах этот php. щас главное доучиться, и забыть все это дело..
  • Абырвалг

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

    Spritz 19 декабря 2010 г. 15:00, спустя 1 час 5 минут 41 секунду

    spl_object_hash можно заменить SplObjectStorage но он под 5.3. Да и это вообще пиздец какой вынос мозга будет для тебя)

    нахуй ты это сделал?! Оказал челу медвежую услугу

    не знаю. Хотел как лучше ну и немного поглумиться с русскими названиями методов-свойств.

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