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
Форумы портала PHP.SU :: Версия для печати :: Поиск сотрудника по фамилии в ООП
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Поиск сотрудника по фамилии в ООП

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

1. Annyyy - 05 Июня, 2011 - 21:18:33 - перейти к сообщению
Есть форма:

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 и как вывести информацию, соответствующую фамилии
2. OrmaJever - 05 Июня, 2011 - 21:35:59 - перейти к сообщению
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();

и в этом обьекте не будет тех значений которые вы установили.
3. Slavenin - 05 Июня, 2011 - 22:49:33 - перейти к сообщению
прежде всего определите в классе конструктор в котором и инициализируйте ваши поля данными.

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/
4. ams - 05 Июня, 2011 - 23:24:45 - перейти к сообщению
Slavenin пишет:
$data = $obj->getData;

Вроде нужно $data = $obj->getData(); ?
5. Slavenin - 06 Июня, 2011 - 07:59:15 - перейти к сообщению
ams пишет:
Вроде нужно $data = $obj->getData(); ?

согласен, поторопился немного Улыбка
6. Annyyy - 06 Июня, 2011 - 09:19:08 - перейти к сообщению
Спасибо большое! Сейчас буду пробовать!

 

Powered by ExBB FM 1.0 RC1