[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Новичок в ооп
Страницы: 1, 2
m4a1fox
не откажите в помощи..... PHP как таковой уже нормально понимаю... Вот пришло время и для ООП. Сейчас сижу читаю книгу - Робина Никсона... Он там затрагивает ооп.... Так вот... Хочу просто понять. Вот есть такой код

$object = new User;
print_r ($object); echo '<br />';
$object->name = 'name';
$object->pasword='password'; echo '<br />';
$object->save_user();
class User
{
public $name, $password;
function save_user ()
{
echo 'Тут код';
}
}



в принципе понятно что происходит... но не понятно каким образом name и password могут получить данные из вне. То есть не задавая их. Например - из формы. Или если нет желания объяснять, может подскажите книжки по ооп для новичков?
Renden
m4a1fox
Ну из формы например так:

$object = new User;
$object->name = $_POST['name'];
$object->pasword=$_POST['password'];
$object->save_user();

class User
{

public $name, $password;

function save_user ()
{
echo 'Тут код';
}
}

m4a1fox
Renden
Ага! Спасибо. Сейчас буду разбираться...
linker
Когда дойдешь до конструкторов поймешь как передавать параметры в создаваемый объект.
$object = new User($_POST['name'], $_POST['password']);
$object->save_user();

class User
{
public $name, $password;

public function __construct($name, $pass)
{
$this->name = $name;
$this->password = $pass;
}

function save_user ()
{
echo 'Тут код';
}
}



_____________
Gear Framework
Gear Framework на Github
m4a1fox
linker
Спасибо вам так же. Для меня Ваша помощь очень хорошая поддержка.
m4a1fox
Renden
У меня к вам вопрос. Ваш код, если применю его с формой получается Notice. Как бы не смертельно, но все же интересно от чего!

Notice: Undefined index: name in /home/www.test.ru/oop.php on line 15 Notice:
Undefined index: password in /home/www.test.ru/oop.php on line 16 Тут код
Renden
m4a1fox
isset нужен, тк переменных $_POST[] пока форму не отправишь нет.
m4a1fox
Renden
Я пытался... вот так сделать

if (isset ($_POST['add']))
{
$object = new User;
print_r ($object); echo "<br />";
$object->name = $_POST['name'];
$object->password = $_POST['password'];

print_r ($object); echo "<br />";
echo $object->get_password();
}
m4a1fox
m4a1fox
Да... получилось.
m4a1fox
Еще вопрос почему вот тут

echo $object->get_password();

class User
{
public $name, $password;
function get_password ()
{
return $this->name;
return $this->password;

}

выводится только name? Без password?
linker
Методы от функций ничем не отличаются, а потому
return "значение";
может быть только одно.

_____________
Gear Framework
Gear Framework на Github
Renden
m4a1fox
потому что нельзя делать 2 return. в твоем случае..

return $this->name . $this->password;

сори нечаяно запятую ткнул
Если отдельно то:

echo $object->get_password();
echo $object->get_name();

class User
{
public $name, $password;
function get_password ()
{
return $this->password;
}
function get_name ()
{
return $this->name;
}


или можешь вернуть массив

$some = array($this->name,$this->password);
return $some;
m4a1fox
linker
Спасибо. Теперь понятно.
Renden
Спасибо. Начинает уже что то проясняться.
m4a1fox
Объясните пожалуйста. Для чего такая сложность в ооп? Что бы вывести две строчки текста

$name = isset ($_POST['name']) ? $_POST['name'] : '';
$password = isset ($_POST['password']) ? $_POST['password'] : '';
$object = new User;
print_r ($object); echo "<br />";
$object->name = $name;
$object->password = $password;

print_r ($object); echo "<br />";
echo $object->get_password();

class User
{
public $name, $password;
function get_password ()
{
return $this->name .'<br />'. $this->password;

}
}

echo '<br />'.$object->name.'<br />'.$object->password;
?>
<br />
<
br />
<
form action="" method="post">
имя:
<
br />
<
input type="text" name="name" />
<
br />
Пароль:
<
br /><input type="password" name="password" />
<
input type="submit" name="add" />
</
form>


Я просто хочу понять для каких целей в программировании на php используется ооп?
если вот так

$name = isset ($_POST['name']) ? $_POST['name'] : '';
$password = isset ($_POST['password']) ? $_POST['password'] : '';
echo $name;
echo '<br />';
echo $password;
?>
<br />
<
br />
<
form action="" method="post">
имя:
<
br />
<
input type="text" name="name" />
<
br />
Пароль:
<
br /><input type="password" name="password" />
<
input type="submit" name="add" />
</
form>

гораздо проще и логичнее чем верхний код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.