Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск сотрудника по фамилии в ООП

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Annyyy
Отправлено: 05 Июня, 2011 - 21:18:33
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2011  
Откуда: Dnepropetrovsk


Помог: 0 раз(а)




Есть форма:

CODE (html):
скопировать код в буфер обмена
  1. <form action='handler.php' method="post">
  2. <input type="text" name="surname"/>
  3. <input type="submit" value="send"/>
  4. </form>


Определен класс Сотрудники:
PHP:
скопировать код в буфер обмена
  1. class Employee
  2.                 {
  3.                         private $surname;
  4.                         private $name;
  5.                         private $patronic;
  6.                         private $age;
  7.                        
  8.                         public function set_employee( $a,  $b,  $c,  $d)
  9.                         {
  10.                                 $this->surname=$a;
  11.                                 $this->name=$b;
  12.                                 $this->patronic=$c;
  13.                                 $this->age=$d;
  14.                                 return $this;
  15.                         }
  16.                        
  17.                         public function set_employee1( $a,  $b,  $c,  $d)
  18.                         {
  19.                                 $tmp = new Employee();
  20.                                 $tmp->set_employee($a,$b,$c,$d);
  21.                                 return $tmp;
  22.                         }
  23. public function full_info()
  24.                         {
  25.                                 echo "<pre>";
  26.                                 print_r ($this);
  27.                                 echo "</pre>";
  28.                         }
  29.                                
  30.                 }
  31.  


и задан массив объектов:

PHP:
скопировать код в буфер обмена
  1. $var=$_POST ['surname'];
  2.                 if(empty($var))
  3.                 {
  4.                 echo "Ведите фамилию";
  5.         exit;
  6.                 }
  7.                         echo $var;
  8.                        
  9.                         require_once ("Employee.php");
  10.                         $obj= new Employee();
  11.                        
  12.                        
  13.                        
  14.                 $arr_obj=array(Employee::set_employee1("Петров", "Петр", "Петрович", 52),
  15.                                                         Employee::set_employee1("Иванов", "Иван", "Иванович", 23),
  16.                                                         Employee::set_employee1("Сидоров", "Сидор", "Сидорович", 19));
  17.                                                        
  18.                
  19.                        
  20.                                        
  21.                         echo "<pre>";
  22.                         print_r ($arr_obj);
  23.                         echo "</pre>";
  24.                        
  25.                         $obj->full_info();
  26.                         unset ($obj);


Подскажите, как сравнить переменную $var с переменной $a и как вывести информацию, соответствующую фамилии
 
 Top
OrmaJever Модератор
Отправлено: 05 Июня, 2011 - 21:35:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1.   $arr_obj=array(Employee::set_employee1("Петров", "Петр", "Петрович", 52),
  2.                                                         Employee::set_employee1("Иванов", "Иван", "Иванович", 23),
  3.                                                         Employee::set_employee1("Сидоров", "Сидор", "Сидорович", 19));

1) При таком написаниее метод set_employee1 должен быть статическим
2) каждый индекс масива содержит обьект.
3) Код написано глупо, создано аж 4 экземпляра одного класа
(Добавление)
Annyyy пишет:
$obj->full_info();

и в этом обьекте не будет тех значений которые вы установили.

(Отредактировано автором: 05 Июня, 2011 - 21:37:40)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Slavenin
Отправлено: 05 Июня, 2011 - 22:49:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




прежде всего определите в классе конструктор в котором и инициализируйте ваши поля данными.

PHP:
скопировать код в буфер обмена
  1. class Employee
  2. {
  3.   private $surname;
  4.   private $name;
  5.   private $patronic;
  6.   private $age;
  7.  
  8. function Employee( $a,  $b,  $c,  $d)
  9. {
  10.   $this->surname=$a;
  11.   $this->name=$b;
  12.   $this->patronic=$c;
  13.   $this->age=$d;
  14. }
  15. function getData()
  16. {
  17.   $arr = array($this->surname, $this->name, $this->patronic, $this->age);
  18.   return $arr;
  19. }
  20. }
  21.  
  22. $obj = new Employee('Иванов', 'Иван', 'Иваныч', '52');
  23. $data = $obj->getData;
  24. $name = $_POST ['surname'];
  25.  
  26. if($name == $data[0])
  27. echo 'ура!!!';
  28.  


и мой вам совет, почитайте http://php.su/learnphp/phpoo/

(Отредактировано автором: 05 Июня, 2011 - 22:50:54)

 
 Top
ams
Отправлено: 05 Июня, 2011 - 23:24:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




Slavenin пишет:
$data = $obj->getData;

Вроде нужно $data = $obj->getData(); ?
 
 Top
Slavenin
Отправлено: 06 Июня, 2011 - 07:59:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




ams пишет:
Вроде нужно $data = $obj->getData(); ?

согласен, поторопился немного Улыбка
 
 Top
Annyyy
Отправлено: 06 Июня, 2011 - 09:19:08
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2011  
Откуда: Dnepropetrovsk


Помог: 0 раз(а)




Спасибо большое! Сейчас буду пробовать!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB