[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: I vs OOP
m4a1fox
Доброго времени суток господа! Думаю в названии темы все ясно! Сильно не бейте. Я только учусь! Собственно вот.

$name = true;
class Member
{
static $var = array ('Max' => '123',);

function __construct($name) {
$name = !empty($_POST['log']) ? $_POST['log'] : 'Гость';
$pas = !empty($_POST['pas']) ? $_POST['pas'] : NULL;
$this->name = $name;
$this->pas = $pas;
}

function hello () {
if ($this->name == 'Max' && $this->pas == '123')
return header('Location: second.php');
else {
return 'Hello ' .$this->name. '!';
}
}
}



$member = new Member($name);
echo $member->hello();


<form action="" method="post">
<table>
<tr>
<td>

Логин:
</td>
<td>
<input
type="text" name="log"/>
</td>
</tr>
<tr>
<td>
Пароль:</td>
<td><input
type="password" name="pas" /></td>
</tr>

<tr>
<td></td><td><input
type="submit" name="ok" /></td>
</tr>

</table>
</form>


Поправьте где я не прав. А именно вот тут

if ($this->name == 'Max' && $this->pas == '123')

Как вот сюда значения из массива

static $var = array ('Max' => '123',);
вставить?



Спустя 4 минуты, 21 секунда (28.06.2011 - 23:44) m4a1fox написал(а):
Или так вообще нельзя делать?

Спустя 4 минуты, 22 секунды (28.06.2011 - 23:48) m4a1fox написал(а):
Вопрос пока что снимается. Вроде разобрался

Спустя 36 секунд (28.06.2011 - 23:49) kovaldm написал(а):
Определи в описании класса свойства name и pass.
А что нужно сделать? Присвоить свойству массив?

Спустя 51 секунда (28.06.2011 - 23:50) m4a1fox написал(а):

$name = true;
class Member
{
static $name = 'Max';
static $pas = '123';

function __construct($name) {
$name = !empty($_POST['log']) ? $_POST['log'] : 'Гость';
$pas = !empty($_POST['pas']) ? $_POST['pas'] : NULL;
$this->name = $name;
$this->pas = $pas;
}

function hello () {
if ($this->name == self::$name && $this->pas == self::$pas)
return header('Location: second.php');
else {
return 'Hello ' .$this->name. '!';
}
}
}



вот так инициировал переменные

static $name = 'Max';
static $pas = '123';

Наверно их стоит сделать private?

Спустя 11 секунд (28.06.2011 - 23:50) bulgakov написал(а):


name = true;
class Member
{
static $var = array ('Max' => '123',); // лишняя запятая

function __construct($name) {
$name = !empty($_POST['log']) ? $_POST['log'] : 'Гость';
$pas = !empty($_POST['pas']) ? $_POST['pas'] : NULL;
$this->name = $name; // обьяви свойства класса name и
$this->pas = $pas; // pas и помоему создание $name и $pas вывести за пределы класса и передавать их в конструктор а в конструкторе уже присваивать свойствам класса.
}

function hello () {
if ($this->name == 'Max' && $this->pas == '123')
return header('Location: second.php');
else {
return 'Hello ' .$this->name. '!';
}
}
}



Спустя 1 минута, 21 секунда (28.06.2011 - 23:51) bulgakov написал(а):
Если ты их инциировал как static то обращение к таким переменным внутри класса - self::name_static

Спустя 1 минута, 21 секунда (28.06.2011 - 23:52) m4a1fox написал(а):
F А если вот так

private static $name = 'Max';
private static $pas = '123';

Я просто хочу разобраться. Что есть что!

Спустя 2 минуты, 37 секунд (28.06.2011 - 23:55) kovaldm написал(а):
Получатся скрытые свойства, доступ только внутри класса, то есть через методы.

Спустя 50 секунд (28.06.2011 - 23:56) bulgakov написал(а):
Может быть как-то так?


$name = !empty($_POST['log']) ? $_POST['log'] : 'Гость';
$pas = !empty($_POST['pas']) ? $_POST['pas'] : NULL;


class Member
{
static $name = 'Max';
static $pas = '123';

function __construct($name, $pas) {
self::name = $name;
self::pas = $pas;
}

function hello () {
if (self::name == 'Max' && self::pas == '123')
return header('Location: second.php');
else {
return 'Hello ' .self::name. '!';
}
}
}



Спустя 2 минуты, 36 секунд (28.06.2011 - 23:58) bulgakov написал(а):
Методы и свойства могут быть объявлены как:

public - доступны в самом классе, в наследуемых класса и из экземпляра класса

protected - доступны в самом классе, в наследуемых классах но не из экземляра класса

private - доступны только внутри класса.

Спустя 48 секунд (28.06.2011 - 23:59) m4a1fox написал(а):
Наверно я не правильно как-то выразился! Я разобрался! Эта штука работает! Меня другой вопрос интересует! Где я выиграл в этом коде, в отличии от обычного!? Ну то есть какой плюс? Или наверно его тут трудно разглядеть smile.gif - код то маленький, но до больших еще ого-гого!

Спустя 4 минуты, 10 секунд (29.06.2011 - 00:03) bulgakov написал(а):
Доступ к статическим методам, свойствам и константам класса осуществляется через двойное двоеточие например:


class Foo
{
public static $my_static = 'foo';
}
print Foo::$my_static . "\n";


class Foo {
public static function aStaticMethod() {
// ...
}
}


Foo::aStaticMethod();



class MyClass {
const CONST_VALUE = 'A constant value';
}

echo MyClass::CONST_VALUE;


Спустя 4 минуты, 4 секунды (29.06.2011 - 00:07) bulgakov написал(а):
В чем ты выиграл сложно сказать, это надо сравнивать с чем-то, выбор между процедурным и ооп подходом делает каждый сам для себя на основании своих анализов кода, может ты в будущем захочеш сделать это библиотекой какой-то как класс, или же тебе будет проще создать файлик библиотеки просто функций, на такой маленьком примере по моему можно обойтись и процедурным подходом, но если интересно разобраться с ооп то сойдет и так)

Спустя 10 минут, 48 секунд (29.06.2011 - 00:18) m4a1fox написал(а):
Значит на верном пути?!

Спустя 1 минута, 44 секунды (29.06.2011 - 00:20) bulgakov написал(а):
Ну изучать что-то новое получать знания, хотеть учиться это всегда верный путь)

Спустя 2 минуты, 46 секунд (29.06.2011 - 00:23) m4a1fox написал(а):
smile.gif
Быстрый ответ:

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