![]() |
Не могу разобраться со скриптом, помогите пожалуйста если не трудн
в общем дали мне скрипт, я когда загружаю выводит ошибку там та в той то строке, я уже наизусть ее выучил но немогу понять что там нитак, посоветуйте(ошибка Fatal error: Cannot re-assign $this in T:homelocalhost3classesShop.php on line 77)
Код:
function Shop($DBManager = 0, $objectId = null) { |
И что тут лайн 77?
|
вот я выделил его жирным но там плохо видно=( ($this = $newShop; )
if ($this->getVariable('type') == 'repair' and get_class($this)!='repairshop') { $newShop = new RepairShop(); if ($newShop->get($objectId)) { $this = $newShop; return true; } return false; } |
Ну я так понял это у тебя выбивает такое на PHP5. А связано это с тем, что если в PHP4 ты переменную $this мог использовать как угодно, то в PHP5 она отнесена к разряду зарезервированных, следовательно переопределить её невозможно. По идее, если такая ошибка возникла - это некорректный алгоритм, ибо сделано "в лоб". То есть отныне ты этой переменной ничего не сможешь присвоить... Лучше заведи в классе метод вроде такого:
Цитата:
|
я тоже подумал что в этом и есть проблема я заместо
$this = $newshop; написал if (class_exists($newShop)) { return new $newShop; вроде как помогло но стала выкидывать ошибку такого рода Parse error: parse error, unexpected ';', expecting T_FUNCTION in T:\home\localhost\3\classes\Shop.php on line 2434 как я понял это где-то не закрыта строка? и надо в 2500 строках искать куда поставить ; ?=( |
Ну насчёт корректности исправления я тебе толком сказать ничего не смогу... Ибо всё зависит от реализации алгоритма, а те куски что я видел мало что об это говорят.
Что касается ошибки - возможно не закрыта строка, возможно нарушение баланса скобок {}. Что на той строке? |
я посмотрел у меня помойму не закрыта функция class но я не знаю точно, можно ли тебе как нибуть файл скрипта дать или прикрипить куда нибуть чтобы ты посмотрел?
|
на той строке конец пхп
?> вот)) |
Цитата:
Цитата:
|
ну попробую все скобки пересмотреть))
|
XopoIII, давай смотри... Если что - тогда свистни, постараюсь время найти поставить и потестить. Что хоть за скрипт? Какого плана?
|
вроде более ли менее разобрался теперь такая проблема=)
Parse error: parse error, unexpected T_CLASS, expecting T_FUNCTION in T:\home\localhost\3\classes\Trauma.php on line 178 вот эта строка class LightTrauma extends Trauma { за ней идет function LightTrauma($fighterId) { $this->Trauma($fighterId); $this->setVariable('type', TRAUMA_LIGHT); } function chooseType($mode, $probability) { if ($probability < $this->probability[$mode][TRAUMA_MEDIUM]) { $newTrauma = new HardTrauma($this->getVariable('fighterId')); } elseif ($probability < $this->probability[$mode][TRAUMA_LIGHT]){ $newTrauma = new MediumTrauma($this->getVariable('fighterId')); } else { $newTrauma = false; } return $newTrauma; } } что может в быть в той строке не правильно вообще не понимаю=( |
Сложно сказать... Но мне кажется проблема в строке $this->Trauma($fighterId), т.к. идёт обращение по имени класса, то есть, я так понял вызывается конструктор (?). Может в PHP4 такое и прохляет, то в пятёрке вряд ли. Вообще, это гиблое дело переделывать такой глупый объектно-ориентированный код под пятый PHP. Проще поставить четвёрку, наверное...
|
эх ты думаешь это все из за 5? тогда подскажи как мне 4 воткнуть? к сисадмину обращаться?)
|
XopoIII, PHP5 от PHP4 как раз и отличается более глубокой реализацией объектно-ориентированных фичей, т.е. у тебя как раз на это замут и идёт... В PHP4 ООП - это вообще страшная фикция, ограниченная рядом условий и ограничений. Поэтому в твоём коде стилистика написания соответствущая... Местами аффтар пытался изобрести колесо, что пятёрке уже сделали за него...
Цитата:
|
я пока на топ сервере тестю
|
или где из бесплатных хостов можно проверить будет ли на пхп 4 нормально работать...
|
кинь асю пожалуйста свою в личку мне
|
Цитата:
Цитата:
Цитата:
|
| Время: 17:19 |