$forum[0]->part[0]
Как-то так, но я такой логики еще не встречал.
_____________
Пишите код, исходя из того, что все программисты, которые будут сопровождать вашу программу, — склонные к насилию психопаты, знающие, где вы живёте.
vasa_c
$forum1 - объект
$forum2 - объект
напиши пожалуйста эти пару строчек, которые объединят все атрибуты этих объектов, так, чтобы одинаковые не повторялись
vasa_c
27.09.2010 - 15:58
приведите список примерных атрибутов и то, что вы желаете получить в конце
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
vasa_c
class simpleForum
{
function set_part($title)
{
$this->part[]=$title;
}
function set_cat($title, $part)
{
$this->cat[]=$title;
}
}
$forum1=new simpleForum();
$forum1->set_part("general");
$forum2=new simpleForum();
$forum2->set_cat("Обсуждение сайта", "general");
вот объекты после сериализации
$forum1:
O:11:"simpleForum":1:{s:4:"part";a:1:{i:0;s:7:"general";}}
$forum2:
O:11:"simpleForum":1:{s:3:"cat";a:1:{i:0;s:16:"Обсуждение сайта";}}
нужно получить
O:11:"simpleForum":2:{s:4:"part";a:1:{i:0;s:7:"general";}s:3:"cat";a:1:{i:0;s:16:"Обсуждение сайта";}}
vasa_c
class simpleForum
{
function set_part($title)
{
$this->part[]=$title;
}
function set_cat($title, $part)
{
$this->cat[]=$title;
}
}
$forum1=new simpleForum();
$forum1->set_part("general");
$forum2=new simpleForum();
$forum2->set_cat("Обсуждение сайта", "general");
вот объекты после сериализации
$forum1:
O:11:"simpleForum":1:{s:4:"part";a:1:{i:0;s:7:"general";}}
$forum2:
O:11:"simpleForum":1:{s:3:"cat";a:1:{i:0;s:16:"Обсуждение сайта";}}
нужно получить
O:11:"simpleForum":2:{s:4:"part";a:1:{i:0;s:7:"general";}s:3:"cat";a:1:{i:0;s:16:"Обсуждение сайта";}}
vasa_c
27.09.2010 - 16:14
я не интерпретатор, чтобы читать сериализованные данные
объявить все атрибуты изначально явно и сделать метод для их сливания (можно статический):
class simpleForum {
private $part = array(), $cat = array();
public static function merge($one, $two) {
$result = new simpleForum();
$result->set_part(array_merge($one->part, $two->part));
$result->set_cat(array_merge($one->cat, $two->cat));
return $result;
}
}
$forum3 = simpleForum::merge($forum1, $forum2);
Либо попробовать сформулировать изначальную задачу, тогда может быть решим, как её можно реализовать без подобного говнокода.
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
vasa_c
хорошо, сначала так сначала.
Задача такая: создать объект, который должен храниться для дальнейшего его использования. Вот, например, добавил я раздел в форум - создался объект, содержащий этот факт, потом где-нибудь в другом месте(скрипте) еще что-то добавил к этому объекту и.т.д.
Это у меня впринципе получилось, я сериализирую объект - и храню его, потом рассериализирую и возвращаю когда надо.
но вот встал вопрос, а что, если мне нужен один раздел - какой-то основной, который в дальнейшем не надо трогать(удалять и.т.д). я хочу его написать в начале скритпа, чтобы он(его атрибуты) добавился к хранимому объекту, а после выполнения скрипта все атрибуты этой операции исчезли из объекта.
ну вот как это сделать?
сейчас напишу то что я пока что сделал
vasa_c
27.09.2010 - 16:41
Вы по-прежнему описываете всё очень скомкано и туманно (например, что значит "написать раздел вначале скрипта"?, какой операции атрибуты должны исчезнуть из объекта?).
Скорее всего, это потому, что вы сами смутно представляете, что вы хотите со всем этим сделать.
Данные надо хранить в структурированной базе данных, а не в сериализующихся и непонятно как меняющихся объектах.
Попробуйте перейти на базу и проблем значительно поубавится.
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
vasa_c
я то понимаю что мне нужно.
вот допустим вы создали объект в одном скрипте, по ходу скрипта он изменился, и теперь этот изменившийся объект вам нужно использовать в другом скрипте. как вы будете это делать?
vasa_c
27.09.2010 - 16:57
По моему скромному ИМХУ объект, это единица отдельного процесса, он не должен передавться между разными процессами, передаваться должны данные, а уже над ними строится объекты.
Впрочем, ничего не мешает передавать и объект - сериализовать, сохранить, потом достать и десериализовать. Как я понял, вы так и делаете.
А вот "слить атрибуты", "атрибуты операции исчезли из объекта", "написать раздел вначале скрипта", извините, сложно для понимания.
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
vasa_c
)) ну я человек такой, в голове много мыслей, а объяснить все сложно)
$objects=new objects($_SERVER['DOCUMENT_ROOT']."/objects/");
..это сам класс
class objects
{
private $root;
public function __construct ($root)
{
$this->root = $root;
}
public function get_obj($name,$mode="")
{
$get=explode("(",$name, 2);
if(count($get)>0)
{
$name=$get[0];
$params=substr($get[1],0,strlen($get[1])-1);
}
if (isset($this->obj[$name]))
{
$obj=$this->obj[$name];
$obj=unserialize($obj);
return $obj;
}
else
{
if(is_file($this->root.$name.".pobj"))
{
$obj=file_get_contents($this->root.$name.".pobj");
$obj=unserialize($obj);
}
else
$obj=new $name($params);
return $obj;
}
}
public function set_obj($name, $obj, $mode="")
{
$obj=serialize($obj);
$this->obj[$name]=$obj;
}
public function save_obj($name)
{
if(isset($this->obj[$name]))
{
$file=$this->root.$name.".pobj";
@$f = fopen($file, "w+");
@fwrite($f, $this->obj[$name]);
fclose($f);
}
}
}
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.