abstract class fooИ как в таком случае можно обращаться к переменной массива, возвращаемой функцией bar, как к переменной класса? то есть примерно так:
{
public function bar()
{
return array('a' => 'one', b => 'two');
}
}
foo::bar()->a;или
foo::another_bar()->a;или как то еще?
Заранее вам благодарен
Спустя 25 минут, 15 секунд (11.10.2010 - 11:20) linker написал(а):
foo::bar() возвращает массив, а не объект.
Спустя 6 минут, 50 секунд (11.10.2010 - 11:26) enRai написал(а):
Я это понимаю Вот мне и нужно переделать массив в объект, и, как понимаю, возвращать его другой функцией. Как это сделать? То есть массив не постоянный, в него могут как добавляться, так и удаляться из него элементы.
Спустя 50 минут, 6 секунд (11.10.2010 - 12:17) SlavaFr написал(а):
ну так используй с самого начала не масив а StdClass обйект, к стате если ты bar как статик вызываеш, то имеет смысл функцию тоже на static переделать.
Спустя 4 минуты, 15 секунд (11.10.2010 - 12:21) linker написал(а):
class foo
{
public static function bar()
{
return new object(array('a' => 'one', b => 'two'));
}
}
class object
{
protected $properties = array();
public function __construct($array = array())
{
foreach($array as $name => $value)
$this->$name = $value;
}
public function __set($name, $value)
{
$this->properties[$name] = $value;
}
public function __get($name)
{
return isset($this->properties[$name]) ? $this->properties[$name] : null;
}
}
echo foo::bar()->a;
Спустя 7 минут, 38 секунд (11.10.2010 - 12:28) SlavaFr написал(а):
linker, просто
cast operator работает тоже
public static function bar()
{
return (object)array('a' => 'one', 'b' => 'two');
}
cast operator работает тоже
Спустя 2 минуты, 55 секунд (11.10.2010 - 12:31) linker написал(а):
SlavaFr
Ну это хорошо когда более ничего не надо. А тут задел на будущее, типа если понадобиться нечто большее чем просто вывод значения поля объекта
Ну это хорошо когда более ничего не надо. А тут задел на будущее, типа если понадобиться нечто большее чем просто вывод значения поля объекта
foo::bar()->showme();
Спустя 32 минуты, 50 секунд (11.10.2010 - 13:04) enRai написал(а):
Спасибо вам огромнейшее, я вот только на статью о магических функциях наткнулся