1
$this->private_foo();
или
2
$this->x = 3;
Спустя 11 минут, 12 секунд (21.04.2011 - 08:21) kirik написал(а):
Первое это вызов собственного метода внутри некого класса, второе - назначение собственной переменной внутри некого класса.
class foo {
private $x = 0;
private function _show() {
echo $this->x;
}
public function set($i) {
$this->x = $i;
}
public function show() {
$this->_show();
}
}
$foo_class = new foo;
$foo_class->show(); // 0
$foo_class->_show(); // Ошибка - вызов приватного метода
$foo_class->set(2);
$foo_class->show(); // 2
$foo_class->x = 2; // Ошибка - доступ к приватному свойству
Спустя 23 минуты, 45 секунд (21.04.2011 - 08:44) Jek написал(а):
1. $this - это зарезервированное слово?
2. В данном случае, x - это переменная, 3 - это значение?
2. В данном случае, x - это переменная, 3 - это значение?
$this->x = 3;
Спустя 4 минуты, 22 секунды (21.04.2011 - 08:49) kirik написал(а):
1 - да
2 - так точно. Как в обычных переменных ($x = 3), только тут словом $this указывается отношение этой переменной к классу, в котором она используется.
2 - так точно. Как в обычных переменных ($x = 3), только тут словом $this указывается отношение этой переменной к классу, в котором она используется.
Спустя 2 минуты, 35 секунд (21.04.2011 - 08:51) Jek написал(а):
kirik, пример очень понятный. Спасибо. Если не секрет, где вы его взяли?
Спустя 12 минут, 22 секунды (21.04.2011 - 09:04) kirik написал(а):
Цитата (Jek @ 21.04.2011 - 01:51) |
Если не секрет, где вы его взяли? |
Не поверите...
Спустя 4 минуты, 54 секунды (21.04.2011 - 09:09) Jek написал(а):
Если сами сочинили, то очень даже хорошо для начинающих)))
Спустя 27 минут, 44 секунды (21.04.2011 - 09:36) linker написал(а):
kirik
Ты у нас начинающий оказывается Только одно замечание
Ты у нас начинающий оказывается Только одно замечание
Цитата |
только тут словом $this указывается отношение этой переменной к классу |
нужно слово "класс" заменить на "объект".
Спустя 28 минут, 45 секунд (21.04.2011 - 10:05) kirik написал(а):
Цитата (linker @ 21.04.2011 - 02:36) |
нужно слово "класс" заменить на "объект". |
Да, кстати, меткое замечание. Дабы прояснить отличие класса и объекта (инстанции) класса:
если создать два "объекта из одного класса":
$foo_class1 = new foo;
$foo_class2 = new foo;
то изменения в одном из них никак не будут сказываться на другом:
$foo_class1->set(2);
$foo_class2->show(); // 0 - по умолчанию
Цитата (linker @ 21.04.2011 - 02:36) |
Ты у нас начинающий оказывается |
В какой-то степени это даже правда :)