есть вообще задание..считать файл вытащит оттуда все поля через разделитель,распарсить и по параметру выводить..это фиг с ним это сделал..но ни как не вкурю как с объектами работать ...скурил кучу манулаов..а все путаюсь...
class employee {
public $id;
public $surname;
public $name;
public $patronymic;
public $post;
public $sex;
public static function byID($id){
//Вытащили все из фала в общем..теерь проверям по id если есть совпадение вытаскиваем строку и создаем объект
foreach ($users as $key=>$user) {
list($id_m, $surname_m, $name_m, $name_m,$patronymic_m, $post_m, $sex_m) = explode("|", $user);
if ($id_m==$id ){$new_user=$user;}
}
list($id, $surname, $name,$patronymic, $post, $sex) = explode("|",$new_user);
$employee = new Employee;
$employee->id=$id;
$employee->surname=$surname;
$employee->name=$name;
$employee->patronymic=$patronymic;
$employee->post=$post;
$employee->sex=$sex;
print_r($employee);
return $employee;
}
public function fio()
{
А вот здесь мы должны вернуть сроку.н
return $this->name.' '.$this->surname;
//Но как сюда запихнуть объекты $employee->name,$employee->surname, нихрена не понимаю..
}
}
Как быть подмогите..запутался уже с этими объектами...
Спустя 14 минут, 44 секунды (12.01.2011 - 22:55) sixpoundeeer написал(а):
Отформатируйте код нормально. Ничего не понятно, особенно с фигурными скобками.
Спустя 17 минут, 32 секунды (12.01.2011 - 23:12) evdonik написал(а):
class employee {
public $id;
public $surname;
public $name;
public $patronymic;
public $post;
public $sex;
public static function byID($id){
//Вытащили все из файла в общем..теперь проверям по id если есть совпадение вытаскиваем строку и создаем объект
foreach ($users as $key=>$user) {
list($id_m, $surname_m, $name_m, $name_m,$patronymic_m, $post_m, $sex_m) = explode("|", $user);
if ($id_m==$id ){$new_user=$user;}} }
list($id, $surname, $name,$patronymic, $post, $sex) = explode("|",$new_user);
$employee = new Employee;
$employee->id=$id;
$employee->surname=$surname;
$employee->name=$name;
$employee->patronymic=$patronymic;
$employee->post=$post;
$employee->sex=$sex;
print_r($employee);
return $employee;
}
public function fio()
{
А вот здесь мы должны вернуть сроку.н
return $this->name.' '.$this->surname;
//Но как сюда запихнуть объекты $employee->name,$employee->surname, нихрена не понимаю..
}
}
Спустя 24 минуты, 58 секунд (12.01.2011 - 23:37) T1grOK написал(а):
Вы возвращаете в статическом методе экземпляр класса так и обращайтесь к нему как к объекту:
echo employee::byID($id)->fio();
Спустя 4 минуты, 12 секунд (12.01.2011 - 23:41) evdonik написал(а):
а как вызов сделать допусти вот таким образом
$fio = $Employee->FIO();??
Спустя 3 минуты, 34 секунды (12.01.2011 - 23:45) evdonik написал(а):
мне вообщем нужно чтоб в метод fio попали переменные name surname,и в нем они возвращались..
Спустя 5 минут, 24 секунды (12.01.2011 - 23:50) T1grOK написал(а):
Указанным мною способ работает. И никак они туда не попадают, просто они являются некоторым свойством экземпляра класса(они содержатся в "контейнере" экземпляра класса)
Спустя 4 минуты, 45 секунд (12.01.2011 - 23:55) T1grOK написал(а):
Чтобы было понятней:
$employee = employee::byID($id);
$employee->fio();
Спустя 4 минуты, 46 секунд (13.01.2011 - 00:00) evdonik написал(а):
То есть вот это
то есть это бессмыслица чтоли??
public function FIO() {
return $this->familia . ' ' . $this->imya . ' ' . $this->otchestvo;
}
то есть это бессмыслица чтоли??
Спустя 4 минуты, 10 секунд (13.01.2011 - 00:04) evdonik написал(а):
Суть задачи такая.
Нужно написать класс Employee (сотрудник).
Свойства класса - поля из csv-файла.
Методы:
1) Статический метод byID($id), возвращающий объект класса Employee, построенный по табельному номеру.
Вызов должен выглядеть следующим образом: $Employee = Employee::byID($id).
То есть, передаём в качестве параметра 1000 - на выходе получаем объект класса Employee, в котором табельный номер равен 1000, фамилия равна Иванов и т.д.
2) Метод FIO(), возвращающий ФИО сотрудника.
То есть, в результате выполнения кода:
/*
$Employee = Employee::byID(1000);
$fio = $Employee->FIO();
*/
в переменной $fio должно находиться 'Иванов Иван Иванович'.
как то как..
Нужно написать класс Employee (сотрудник).
Свойства класса - поля из csv-файла.
Методы:
1) Статический метод byID($id), возвращающий объект класса Employee, построенный по табельному номеру.
Вызов должен выглядеть следующим образом: $Employee = Employee::byID($id).
То есть, передаём в качестве параметра 1000 - на выходе получаем объект класса Employee, в котором табельный номер равен 1000, фамилия равна Иванов и т.д.
2) Метод FIO(), возвращающий ФИО сотрудника.
То есть, в результате выполнения кода:
/*
$Employee = Employee::byID(1000);
$fio = $Employee->FIO();
*/
в переменной $fio должно находиться 'Иванов Иван Иванович'.
как то как..
Спустя 6 минут, 33 секунды (13.01.2011 - 00:10) T1grOK написал(а):
Указанный мной способ именно это и делает. Проверьте если не верите))
Спустя 2 минуты, 49 секунд (13.01.2011 - 00:13) evdonik написал(а):
Цитата (T1grOK @ 12.01.2011 - 21:10) |
Указанный мной способ именно это и делает. |
Он возвращает полностью все данные..а как вернуть только имя фамилию и отчество.
Спустя 5 минут, 4 секунды (13.01.2011 - 00:18) T1grOK написал(а):
Блин. Какие все данные? Oн возвращает экземпляр класса благодаря которому можно обратиться к методу fio(), собственно почему и подход называется объектно-ориентированным.
Спустя 3 минуты, 32 секунды (13.01.2011 - 00:22) evdonik написал(а):
Так..ладно...
тормоз я уж..чтож поделать..
как обратится к методу fio() чтоб он нам вернул name surname ?
тормоз я уж..чтож поделать..
как обратится к методу fio() чтоб он нам вернул name surname ?
Спустя 4 минуты, 50 секунд (13.01.2011 - 00:27) sixpoundeeer написал(а):
Цитата (evdonik @ 12.01.2011 - 21:22) |
Так..ладно... тормоз я уж..чтож поделать.. как обратится к методу fio() чтоб он нам вернул name surname ? |
Странный ты :) Сам же написал метод для возвращения этих данных:
public function getFIO()
{
return $this->name .' '. $this->surname;
}
Применять его нужно относительно объекта Employee, который, собственно и будет содержать эти свойства. Как это делать писали выше.
Спустя 4 минуты, 38 секунд (13.01.2011 - 00:31) evdonik написал(а):
Цитата (sixpoundeeer @ 12.01.2011 - 21:27) | ||
Странный ты :) Сам же написал метод для возвращения этих данных: public function getFIO() Применять его нужно относительно объекта Employee, который, собственно и будет содержать эти свойства. Как это делать писали выше. |
Да говорю же путаюсь пока...
получается что в переменную
$this->nameпопадает
$employee->name.
и он возвращается?а чегож при выводе там пусто??
Спустя 6 минут, 4 секунды (13.01.2011 - 00:37) sixpoundeeer написал(а):
Цитата (evdonik @ 12.01.2011 - 21:31) |
получается что в переменную $this->nameпопадает $employee->name. и он возвращается?а чегож при выводе там пусто?? |
Совершенно верно. Псевдопеременная $this означает "текущий объект". Тоесть, "$this->name" читается как: "свойство (поле) $name текущего объекта. "Текущий объект" в данном случае - это объект, к которому применяется функция fio().
Почему не выводится - другой вопрос. Исправляй ошибки в коде. Например, у тебя название класса начинается со строчной буквы, а при создании объекта используется прописная.
Спустя 5 минут, 14 секунд (13.01.2011 - 00:43) evdonik написал(а):
Едрид Мадрид...а слона то и не заметил...все работает))))
Спасибо камрады)))
Блин..вот бестолочь))))
Спасибо камрады)))
Блин..вот бестолочь))))