$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 - доступны только внутри класса.
public - доступны в самом классе, в наследуемых класса и из экземпляра класса
protected - доступны в самом классе, в наследуемых классах но не из экземляра класса
private - доступны только внутри класса.
Спустя 48 секунд (28.06.2011 - 23:59) m4a1fox написал(а):
Наверно я не правильно как-то выразился! Я разобрался! Эта штука работает! Меня другой вопрос интересует! Где я выиграл в этом коде, в отличии от обычного!? Ну то есть какой плюс? Или наверно его тут трудно разглядеть
- код то маленький, но до больших еще ого-гого!

Спустя 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 написал(а):
