Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
OOP в PHP для начинающего |

04.04.2010, 22:07
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
OOP в PHP для начинающего
Учусь использовать классы и методы.
У меня много вопросов типа "а нафиг оно?" и почти нет типа "как это сделать".
Вот тут написал маленьки класс для создания форм.
Прокомментируйте его пожалуйса) ==>как вам оно=>мое начало.
PHP код:
<?php
class Form {
private $method;
private $type;
private $field_type;
private $field_name;
private $field_value;
private $field_class;
public function form_open($method,$type)
{
$this->method = $method;
$this->type = $type;
return "<fomr method='{$this->method}' '{$this->type}'>";
}
public function field_create($field_type,$field_name,$field_value,$field_class)
{
$this->field_type = $field_type;
$this->field_name = $field_name;
$this->field_value = $field_value;
$this->field_class = $field_class;
return "<input type='{$this->field_type}' name='{$this->field_name}' value='{$this->field_value}' class='{$this->field_class}'>";
}
public function form_close()
{
return "</form>";
}
}
?>
|
|
|

04.04.2010, 22:17
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
up3gp опечатка fomr вместо form
Взять процедуры, написать вокруг них class Super_Puper_Class - еще не ООП
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

04.04.2010, 22:25
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
Понимаю. Только не понимаю. Вот так.
|
|
|

04.04.2010, 22:27
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Класс пустой + многое непонятно, зачем в нём вообще переменные ?
А если я хочу задать input только для чтения, то что ?
|
|
|

04.04.2010, 22:28
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
Тоесть, я просто для вывода формы, использовал класс. Это могла сделать и обычная функция. А как тогда реализовать класс для создания форм, чтобы он был объекто ориентированным классом , а не процеДурным.
|
|
|

04.04.2010, 22:30
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
Сообщение от Deathdreams
Класс пустой + многое непонятно, зачем в нём вообще переменные ?
А если я хочу задать input только для чтения, то что ?
я не думал об этом. Так как я такие поля не создаю. И скрытое тоже там не создаш)
"зачем в нём вообще переменные ?
" => сам не знаю. Я думал они там нужны)
Последний раз редактировалось up3gp; 04.04.2010 в 22:32..
|
|
|

04.04.2010, 22:33
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
Я ведь говорю какие у меня вопросы. А нафиг оно, задавать эти переменные в начале класса?
|
|
|

04.04.2010, 22:34
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Тогда зачем вообще класс ?
Можно использовать отдельную функцию.
Вообще класс - "ниочём".
-----upd
Зачем ?
По дефолту он всегда паблик.
Последний раз редактировалось Deathdreams; 04.04.2010 в 22:42..
|
|
|

04.04.2010, 22:44
|
|
Новичок
Регистрация: 19.03.2010
Сообщений: 14
Провел на форуме: 23374
Репутация:
0
|
|
Сообщение от Deathdreams
Тогда зачем вообще класс ?
Можно использовать отдельную функцию.
Вообще класс - "ниочём".
-----upd
Зачем ?
По дефолту он всегда паблик.
пониманию.
Хотел научиться, но вышла ерунда.
А что в нем должно было быть к примеру? В классе для создания формы. Расскажите в теории кому не сложно.
|
|
|

05.04.2010, 01:17
|
|
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме: 420713
Репутация:
104
|
|
Почитай ее книгу "Объектно-ориентированное программирование на PHP", написанную сотрудниками нашей студии Кузнецовым Максимом Валерьевичем и Симдяновым Игорем Вячеславовичем
Я не профи
объект класса формы может содержать другие объекты
например объект класса элемент поля
от него может быть порожденный новый объект класса
текстового поле.
PHP код:
class Form
{
private $element;
private $action;
private $method;
private $name;
private $value;
public function __construct($element,$action,$method,$name,$value)
{
$this->element=$element;
$this->action=$action;
$this->method=$method;
$this->name=$name;
$this->value= $value;
}
public function cheak()
{
}
public function viewform()
{
$formview ="<form action='{$this->action}' method='{$this->method}' name='{$this->name}' >";
echo $formview;
foreach($this->element as $el)
{
$formview .= $el->viewelement();
}
echo "<input type='submit' value='{$this->value}'></form>";
}
public function __toString()
{
$this->viewform();
}
}
class Field {
protected $style;
protected $class;
protected $name;
public function __construct($style,$class,$name)
{
$this->style=$style;
$this->class=$class;
$this->name=$name;
}
}
class Finput extends Field
{
private $type;
private $value;
public function __construct($type,$value,$name,$style="",$class="")
{
parent::__construct($style,$class,$name);
$this->type=$type;
$this->value=$value;
}
public function viewelement()
{
$viewelement="<input type='{$this->type}' value='{$this->value}'";
if(!empty($this->class)){ $viewelement .="class='{$this->class}'";}
if(!empty($this->style)){$viewelement .="style='{$this->style}'"; }
$viewelement .="name='{$this->name}'";
$viewelement .="/>";
echo $viewelement;
}
}
$element = new Finput('text','textpole','my1');
$element2 = new Finput('text','textpole2','my2');
$form = new Form(array('element1'=>$element,'element2'=>$element2),'form.php','get','form1','send');
$form->viewform();
Последний раз редактировалось DTW; 05.04.2010 в 01:31..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|