Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Не могу разобраться со скриптом, помогите пожалуйста если не трудн |

30.10.2007, 13:42
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
Не могу разобраться со скриптом, помогите пожалуйста если не трудн
в общем дали мне скрипт, я когда загружаю выводит ошибку там та в той то строке, я уже наизусть ее выучил но немогу понять что там нитак, посоветуйте(ошибка Fatal error: Cannot re-assign $this in T:homelocalhost3classesShop.php on line 77)
Код:
function Shop($DBManager = 0, $objectId = null) {
global $DBManager;
$this->DBObject($DBManager, $objectId);
$this->_app_voc = new app_voc();
}
function get($objectId=null) {
if ($objectId == 0) return false;
if (parent::get($objectId)) {
// echo "in get clinic, $objectId, ".get_class($this)."<br/>";
if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
$newShop = new ComissionShop();
if ($newShop->get($objectId)) {
$this = $newShop;
$this->getCrncyDst();
return true;
}
return false;
}
if ($this->getVariable('type') == 'repair' and get_class($this)!='repairshop') {
$newShop = new RepairShop();
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'clinic' and get_class($this)!='clinic') {
$newShop = new Clinic();
// echo "in get clinic, $objectId, ".get_class($this)."<br/>";
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'magic' and get_class($this)!='magicshop') {
$newShop = new MagicShop();
// echo "in get clinic, $objectId, ".get_class($this)."<br/>";
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'consulting' and get_class($this)!='consulting') {
$newShop = new Consulting();
// echo "in get clinic, $objectId, ".get_class($this)."<br/>";
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'promotion' and get_class($this)!='promotion') {
$newShop = new Promotion();
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'mine' and get_class($this)!='mine') {
$newShop = new Mine();
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'transport' and get_class($this)!='transportation') {
$newShop = new Transportation();
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
if ($this->getVariable('type') == 'ad_board' and get_class($this)!='adboard') {
$newShop = new AdBoard();
if ($newShop->get($objectId)) {
$this = $newShop;
return true;
}
return false;
}
return true;
} else {
return false;
}
}
|
|
|

30.10.2007, 13:58
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
И что тут лайн 77?
|
|
|

30.10.2007, 15:12
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
вот я выделил его жирным но там плохо видно=( ($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;
}
|
|
|

30.10.2007, 15:57
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну я так понял это у тебя выбивает такое на PHP5. А связано это с тем, что если в PHP4 ты переменную $this мог использовать как угодно, то в PHP5 она отнесена к разряду зарезервированных, следовательно переопределить её невозможно. По идее, если такая ошибка возникла - это некорректный алгоритм, ибо сделано "в лоб". То есть отныне ты этой переменной ничего не сможешь присвоить... Лучше заведи в классе метод вроде такого:
function new_ref ($class) {
if (class_exists($class)) return new $class;
return null;
}
А потом с её помощью получай новый объект в какую-то переменную и работай с ним. В любом случае - если ты от этого далёк, то пускай кодер доведёт этот скрипт до ума, чтобы он пахал в PHP5.
|
|
|

30.10.2007, 16:14
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
я тоже подумал что в этом и есть проблема я заместо
$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 строках искать куда поставить ; ?=(
|
|
|

30.10.2007, 16:52
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну насчёт корректности исправления я тебе толком сказать ничего не смогу... Ибо всё зависит от реализации алгоритма, а те куски что я видел мало что об это говорят.
Что касается ошибки - возможно не закрыта строка, возможно нарушение баланса скобок {}. Что на той строке?
|
|
|

30.10.2007, 17:10
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
я посмотрел у меня помойму не закрыта функция class но я не знаю точно, можно ли тебе как нибуть файл скрипта дать или прикрипить куда нибуть чтобы ты посмотрел?
|
|
|

30.10.2007, 17:21
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
на той строке конец пхп
?>
вот))
|
|
|

30.10.2007, 17:28
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну скорее всего баланс скобок не верен...
...можно ли тебе как нибуть файл скрипта дать или прикрипить куда нибуть чтобы ты посмотрел?
Да теоретически можно, но у меня времени реально нету разгребать что-то... Я так понял - это у тебя модуль какой-то... Может даже от oscommerce, а там есть над чем подумать...
|
|
|

30.10.2007, 17:33
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
ну попробую все скобки пересмотреть))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|