Проблема с классами

CJ_Slade

Новичок
Проблема с классами

Решил перевести скрипт с Php5 На php4. Столкнулся с такой проблемкой

PHP:
$localeText=$dom->createTextNode($this->to1251($xp->query("//root/locale[@name='en']")->item(0)->firstChild->data));

Parse error: parse error in z:\home\cj_engine\www\root\kernel\class.kernel.php on line 118

Похоже синтаксис -> -> не нравится.
Может быть кто сталкивался с таким?
 

Мутник

Новичок
CJ_Slade

в 4м пхп такое работает на ура:

PHP:
$this->db->query($sql);
так что, видимо, ручки подвели тебя на этот раз ;)
 

Said

Guest
в 4м работает такое $aaa->bbb->ccc->ddd->xxx();
но не такое: $aaa->bbb()->ccc;
 

CJ_Slade

Новичок
Значит все-таки метод класса хитрый такой.
Эхх. Перебивать классы прийдется.
 

ForJest

- свежая кровь
в 4-м PHP нет разыменования, поэтому нельзя использовать объект, полученный в качестве результата функции
 

CJ_Slade

Новичок
Я вот так разложил:
PHP:
			$dummy2=$xp->query("//root/locale[@name='en']");
			$dummy3=$dummy2->item(0);
			$dummy4=$dummy3->firstChild->data;			
			$dummy5=$dom->createTextNode($dummy4);
			$localeText=$this->to1251($dummy5);
Ошибку не выдаёт.
 

Said

Guest
еще возможно где-то стоит заменить = на =&
для экономии памяти - думаю при работе с большими кусками DOM это имеет смысл

$dummy4=$dummy3->firstChild->data;
- здесь создается лишняя копия данных

лучше так:
$dummy4=&$dummy3->firstChild->data;

или даже так:
$dummy5=$dom->createTextNode($dummy3->firstChild->data);
 
Сверху