|
Law1iet ↓
|
 |
|
08 Июль, 2011, 12:04:06
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 0
Сообщений: 8 Сила слова: 0
|
interface Observer
{
function notify ($obj);
}
class ExchangeRate
{
static private $instance = NULL;
private $observers = array();
private $exchange_rate;
private function ExchangeRates ()
{
}
static public function getInstance ()
{
if (self:: $instance == NULL)
{
self:: $instance = new ExchangeRate ();
}
return self:: $instance;
}
public function getExchangeRate ()
{
return $this-> $exchange_rate;
}
public function setExchangeRate ($new_rate)
{
$this-> $exchange_rate = $new_rate;
$this-> notifyObservers();
}
public function registerObserver ($obj)
{
$this-> observers[] = $obj;
}
function notifyObservers ()
{
foreach($this-> observers as $obj)
{
$obj-> notify($this);
}
}
}
class ProductItem implements Observer
{
public function __construct ()
{
ExchangeRate:: getInstance()-> registerObserver($this);
}
public function notify ($obj)
{
if ($obj instanceof ExchangeRate )
{
// Update exchange rate data
print "Received update!\n";
}
}
}
$product1 = new ProductItem ();
$product2 = new ProductItem ();
$q = new ExchangeRate ();
$q-> setExchangeRate(4);
ExchangeRate:: getInstance()-> setExchangeRate(4);
пример из книжки. Должно выдавать 2 радостных сообщения "Received update!\n", а выдает
Fatal error: Cannot access empty property in Z:\home\localhost\www\newproject\observerclass.php on line 29 :(
собственно, ошибка в методе setExchangerate, но я не понимаю какая :) Спустя 3 минуты 44 секунды добавил чет не вижу кнопку отредактировать :)
строки
$q = new ExchangeRate();
$q->setExchangeRate(4);
закоментите, это мои эксперименты))
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
08 Июль, 2011, 12:07:25 , спустя 3 минуты 19 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
return $this->$exchange_rate;
папке передай чтобы очки купил :-)
перед букой Ёб лишний доллар
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Law1iet ↓
|
 |
|
08 Июль, 2011, 12:13:37 , спустя 6 минут 12 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 0
Сообщений: 8 Сила слова: 0
|
ололо, домо аригато))
|
|
|
|
|
Записан
|
|
|
|
|
kostyl ↓
|
 |
|
08 Июль, 2011, 12:17:17 , спустя 3 минуты 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
phpdude, надо при регистрации написать - "Редактировать посты надо заслужить блядь"
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
phpdude ↓
|
 |
|
08 Июль, 2011, 12:33:03 , спустя 15 минут 46 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
ололо, домо аригато))
папке скажи чтобы денег лучше вернул))) ну и с оригато его конечно xDDD
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
KaFe ↓
|
 |
|
08 Июль, 2011, 01:32:59 , спустя 59 минут 56 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Сраный Тролль Карма: -13346
Сообщений: 1727 Сила слова: -772.79
|
Дяденька знаю, где у вас ошибка. В коде епт :D
|
|
|
|
|
Записан
|
|
|
|
|
Animator ↓
|
 |
|
08 Июль, 2011, 02:04:54 , спустя 31 минуту 55 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 3
Сообщений: 200 Сила слова: 1.5
|
пример из книжки!? из таких книжек 7 лет назад нелохие "баяны" получались...
либо я таки в окопе, либо кое кто пытается козла доить :)
|
|
|
|
|
Записан
|
|
|
|
|
kostyl ↓
|
 |
|
08 Июль, 2011, 11:32:46 , спустя 9 часов 27 минут 52 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
занедельный антипаттерн
Группа: Джедаи Карма: 60
Сообщений: 3522 Сила слова: 1.7
|
есть охуенные книжки но с кучей ошибок в коде... сразу скил повышаешь )))
|
|
|
|
|
Записан
|
качество жизни обратно пропорционально количеству лени
|
|
|
|
Law1iet ↓
|
 |
|
09 Июль, 2011, 12:05:02 , спустя 12 часов 32 минуты 16 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 0
Сообщений: 8 Сила слова: 0
|
/*echo "<p>";
ReflectionClass::export("reflectionclass");
echo "</p>";
*/
class ClassOne
{
function callClassOne () {
print "In Class One\n";
}
}
class ClassTwo {
function callClassTwo () {
print "In Class Two\n";
}
}
class ClassOneDelegator {
private $targets;
function __construct () {
$this-> target[] = new ClassOne ();
}
function addObject ($obj) {
$this-> target[] = $obj;
}
function __call ($name, $args) {
foreach ($this-> target as $obj) {
$r = new ReflectionClass ($obj);
if ($method = $r-> getMethod($name)) {
if ($method-> isPublic() && ! $method-> isAbstract()) {
return $method-> invoke($obj, $args);
}
}
}
}
}
$obj = new ClassOneDelegator ();
$obj-> addObject(new ClassTwo ());
$obj-> callClassOne();
$obj-> callClassTwo();
тема делегирование и рефлексии
выводит фатальную ошибку
Fatal error: Uncaught exception 'ReflectionException' with message 'Method callClassTwo does not exist' in Z:\home\localhost\www\newproject\reflections.php:28 Stack trace: #0 Z:\home\localhost\www\newproject\reflections.php(28): ReflectionClass->getMethod('callClassTwo') #1 [internal function]: ClassOneDelegator->__call('callClassTwo', Array) #2 Z:\home\localhost\www\newproject\reflections.php(39): ClassOneDelegator->callClassTwo() #3 {main} thrown in Z:\home\localhost\www\newproject\reflections.php on line 28
а надо 2 радостных сообщения. Лишних долларов вроде нету :(
помогите плз.!!... Спустя 1 минуту 27 секунд добавил и, да, как выводить в форматированном виде (ReflectionClass::export("reflectionclass"))? т.е исходный код адекватен, с переходами между строк, а браузер всё в одну пишет.
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
09 Июль, 2011, 12:23:59 , спустя 18 минут 57 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: 20790 Сила слова: 1.66
|
Law1iet, гразы мануал. http://ru2.php.net/manual/en/reflectionclass.hasmethod.php
папке передавай привет, пусть объявится в скайп падонаг Спустя 52 секунды добавил т.е исходный код адекватен, с переходами между строк, а браузер всё в одну пишет.
ты прав, хтмл ты тоже по видеокурсам учил? :-)
<pre> вот тут блядь будут все отступы и пробелы фффф ввввввв фы
фыфф </pre>
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Law1iet ↓
|
 |
|
09 Июль, 2011, 01:10:53 , спустя 46 минут 54 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 0
Сообщений: 8 Сила слова: 0
|
какой папке о чем ты :D провал, да, хтмл по видео :D пхп вот по учебнику надо.
уууу документация... бррр... гляньте, мб все таки найдете ошибку в исходнике примера @_@
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
09 Июль, 2011, 01:49:39 , спустя 38 минут 46 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
уууу документация... бррр... гляньте, мб все таки найдете ошибку в исходнике примера @_@
носом ткнуть? так я вроде ткнул уже ...
надо так короче
$r = new ReflectionClass($obj);
if ($r->hasMethod($name) && ($method = $r->getMethod($name))) {
if ($method->isPublic() && !$method->isAbstract()) {
return $method->invoke($obj, $args);
}
}
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|