ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Не могу разобраться со скриптом, помогите пожалуйста если не трудн
  #1  
Старый 30.10.2007, 13:42
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 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; 
         } 
     }
 
Ответить с цитированием

  #2  
Старый 30.10.2007, 13:58
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

И что тут лайн 77?
 
Ответить с цитированием

  #3  
Старый 30.10.2007, 15:12
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 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;
}
 
Ответить с цитированием

  #4  
Старый 30.10.2007, 15:57
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ну я так понял это у тебя выбивает такое на PHP5. А связано это с тем, что если в PHP4 ты переменную $this мог использовать как угодно, то в PHP5 она отнесена к разряду зарезервированных, следовательно переопределить её невозможно. По идее, если такая ошибка возникла - это некорректный алгоритм, ибо сделано "в лоб". То есть отныне ты этой переменной ничего не сможешь присвоить... Лучше заведи в классе метод вроде такого:

Цитата:
function new_ref ($class) {
if (class_exists($class)) return new $class;
return null;
}
А потом с её помощью получай новый объект в какую-то переменную и работай с ним. В любом случае - если ты от этого далёк, то пускай кодер доведёт этот скрипт до ума, чтобы он пахал в PHP5.
 
Ответить с цитированием

  #5  
Старый 30.10.2007, 16:14
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 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 строках искать куда поставить ; ?=(
 
Ответить с цитированием

  #6  
Старый 30.10.2007, 16:52
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ну насчёт корректности исправления я тебе толком сказать ничего не смогу... Ибо всё зависит от реализации алгоритма, а те куски что я видел мало что об это говорят.

Что касается ошибки - возможно не закрыта строка, возможно нарушение баланса скобок {}. Что на той строке?
 
Ответить с цитированием

  #7  
Старый 30.10.2007, 17:10
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме:
651930

Репутация: 65
По умолчанию

я посмотрел у меня помойму не закрыта функция class но я не знаю точно, можно ли тебе как нибуть файл скрипта дать или прикрипить куда нибуть чтобы ты посмотрел?
 
Ответить с цитированием

  #8  
Старый 30.10.2007, 17:21
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме:
651930

Репутация: 65
По умолчанию

на той строке конец пхп
?>
вот))
 
Ответить с цитированием

  #9  
Старый 30.10.2007, 17:28
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Цитата:
на той строке конец пхп
Ну скорее всего баланс скобок не верен...

Цитата:
...можно ли тебе как нибуть файл скрипта дать или прикрипить куда нибуть чтобы ты посмотрел?
Да теоретически можно, но у меня времени реально нету разгребать что-то... Я так понял - это у тебя модуль какой-то... Может даже от oscommerce, а там есть над чем подумать...
 
Ответить с цитированием

  #10  
Старый 30.10.2007, 17:33
Аватар для XopoIII
XopoIII
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме:
651930

Репутация: 65
По умолчанию

ну попробую все скобки пересмотреть))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПомогитЕ !!! подалуста найти кряк гейлордфакерЪ Болталка 2 30.08.2007 14:48
ПоМоГиТе! ПЛЗ!!! farik.aka E-Mail 1 17.09.2006 13:00
Сетевой сканер Nmap. Руководство пользователя foreva Чужие Статьи 1 08.02.2005 16:36
Пожалуйста помогите срочно! Бурундукан E-Mail 13 07.02.2005 12:07
помогите разобраться svans Чаты 2 23.12.2002 21:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ