Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу разобраться со скриптом, помогите если не трудно

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
XopoIII
Отправлено: 29 Октября, 2007 - 14:26:44
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




в общем дали мне скрипт, я когда загружаю выводит ошибку там та в той то строке, я уже наизусть ее выучил но немогу понять что там нитак, посоветуйте(ошибка Fatal error: Cannot re-assign $this in T:homelocalhost3classesShop.php on line 77)
скрипт прикрепил ниже(весь скрипт не влез и не прикрепился вот малая часть)

PHP:
скопировать код в буфер обмена
  1.  
  2. function get($objectId=null) {
  3.         if ($objectId == 0) return false;
  4.         if (parent::get($objectId)) {
  5. //                                   echo "in get clinic, $objectId, ".get_class($this)."<br/>";
  6.  
  7.             if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
  8.                 $newShop = new ComissionShop();
  9.                 if ($newShop->get($objectId)) {
  10.                     $this = $newShop;
  11.                     $this->getCrncyDst();
  12.                     return true;
  13.                 }
  14.                 return false;
  15.             }
  16.  
  17.             if ($this->getVariable('type') == 'repair' and get_class($this)!='repairshop') {
  18.                 $newShop = new RepairShop();
  19.                 if ($newShop->get($objectId)) {
  20.                     [b]$this = $newShop[/b];
  21.                     return true;
  22.                 }
  23.                 return false;
  24.             }
  25.  
  26.              if ($this->getVariable('type') == 'clinic' and get_class($this)!='clinic') {
  27.                 $newShop = new Clinic();
  28. //                   echo "in get clinic, $objectId, ".get_class($this)."<br/>";
  29.  
  30.                if ($newShop->get($objectId)) {
  31.                     $this = $newShop;
  32.                     return true;
  33.                 }
  34.                 return false;
  35.             }
  36.  
  37.              if ($this->getVariable('type') == 'magic' and get_class($this)!='magicshop') {
  38.                 $newShop = new MagicShop();
  39. //                   echo "in get clinic, $objectId, ".get_class($this)."<br/>";
  40.  
  41.                if ($newShop->get($objectId)) {
  42.                     $this = $newShop;
  43.                     return true;
  44.                 }
  45.                 return false;
  46.             }
  47.  
  48.             if ($this->getVariable('type') == 'consulting' and get_class($this)!='consulting') {
  49.                 $newShop = new Consulting();
  50. //                   echo "in get clinic, $objectId, ".get_class($this)."<br/>";
  51.  
  52.                if ($newShop->get($objectId)) {
  53.                     $this = $newShop;
  54.                     return true;
  55.                 }
  56.                 return false;
  57.             }
  58.  
  59.             if ($this->getVariable('type') == 'promotion' and get_class($this)!='promotion') {
  60.                 $newShop = new Promotion();
  61.                if ($newShop->get($objectId)) {
  62.                     $this = $newShop;
  63.                     return true;
  64.                 }
  65.                 return false;
  66.             }
  67.  
  68.             if ($this->getVariable('type') == 'mine' and get_class($this)!='mine') {
  69.                 $newShop = new Mine();
  70.                if ($newShop->get($objectId)) {
  71.                     $this = $newShop;
  72.                     return true;
  73.                 }
  74.                 return false;
  75.             }
  76.  
  77.             if ($this->getVariable('type') == 'transport' and get_class($this)!='transportation') {
  78.                 $newShop = new Transportation();
  79.                if ($newShop->get($objectId)) {
  80.                     $this = $newShop;
  81.                     return true;
  82.                 }
  83.                 return false;
  84.             }
  85.  
  86.             if ($this->getVariable('type') == 'ad_board' and get_class($this)!='adboard') {
  87.                 $newShop = new AdBoard();
  88.                if ($newShop->get($objectId)) {
  89.                     $this = $newShop;
  90.                     return true;
  91.                 }
  92.                 return false;
  93.             }
  94.  
  95.             return true;
  96.         } else {
  97.             return false;
  98.         }
  99.     }
  100.  
 
 Top
evgenijj
Отправлено: 29 Октября, 2007 - 15:19:26
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Я так понимаю, что вот это
PHP:
скопировать код в буфер обмена
  1.  
  2.  function get($objectId=null)
  3.  

метод класса. Перед вызовом метода класса надо создать объект. Ключевое слово $this используется для доступа к членам класса внутри класса. У тебя же внутри метода
PHP:
скопировать код в буфер обмена
  1.  
  2.  function get($objectId=null)
  3.  

создаются новые объекты:
PHP:
скопировать код в буфер обмена
  1.  
  2. $newShop = new RepairShop();
  3.  

и идет попытка переопределить $this (т.е. он будет ссылаться на другой объект).

Думаю, так делать нельзя:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class someClass {
  4.   public $someVar = 123;
  5.  
  6.   public function someMethod() {
  7.     return $this->someVar;
  8.   }
  9. }
  10.  
  11. class anotherClass {
  12.   public $anotherVar = 456;
  13.  
  14.   public function anotherMethod() {
  15.     return $this->anotherVar;
  16.   }
  17. }
  18.  
  19. $first = new someClass();
  20. echo "someVar=".$first->someVar.'<br/>';
  21. echo "someMethod=".$first->someMethod().'<br/>';
  22.  
  23. $second = new anotherClass();
  24. echo "anotherVar=".$second->anotherVar.'<br/>';
  25. echo "anotherMethod=".$second->anotherMethod().'<br/>';
  26. ?>
  27.  

Результат:
someVar=123
someMethod=123
anotherVar=456
anotherMethod=456

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class someClass {
  4.   public $someVar = 123;
  5.  
  6.   public function someMethod() {
  7.     return $this->someVar;
  8.   }
  9. }
  10.  
  11. class anotherClass {
  12.   public $anotherVar = 456;
  13.  
  14.   public function anotherMethod() {
  15.     $tmp = new someClass();
  16.     $this = $tmp;
  17.     return $this->anotherVar;
  18.   }
  19. }
  20.  
  21. $first = new someClass();
  22. echo "someVar=".$first->someVar.'<br/>';
  23. echo "someMethod=".$first->someMethod().'<br/>';
  24.  
  25. $second = new anotherClass();
  26. echo "someVar=".$second->anotherVar.'<br/>';
  27. echo "someMethod=".$second->anotherMethod().'<br/>';
  28. ?>
  29.  

Результат:
Fatal error: Cannot re-assign $this in C:/work/localhost/www/myClass.php on line 15
 
 Top
XopoIII
Отправлено: 30 Октября, 2007 - 11:45:20
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




вроде понял, попробовал везде перед константой $this вписать присвоение к другой константе, в итоге скрит кричит туже ошибку только на строку ниже там где константа $this
перед моим всем скриптом еще это написано может что тут?
или вообще прикрепить весь файл но почему то не могу=(


CODE (text):
скопировать код в буфер обмена
  1.  
  2. function Shop($DBManager = 0, $objectId = null) {
  3.         global $DBManager;
  4.         $this->DBObject($DBManager, $objectId);
  5.         $this->_app_voc = new app_voc();
  6.     }
  7.  

 
 Top
evgenijj
Отправлено: 30 Октября, 2007 - 12:53:53
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Возможно, тебе поможет отказ от 5-ой версии PHP и возврат к 4-ой

http://masterhost[dot]ru/support/faq[dot][dot].php5-mysql5/#php
 
 Top
XopoIII
Отправлено: 30 Октября, 2007 - 13:25:16
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




evgenijj
спасибо большое, посмотрел попробовал так как ты сказал, все прошло, но блин теперь выдает ошибку
Parse error: parse error, unexpected $end in T:homelocalhost3classesShop.php on line 2434


CODE (text):
скопировать код в буфер обмена
  1. function Shop($DBManager = 0, $objectId = null) {
  2.         global $DBManager;
  3.         $this->DBObject($DBManager, $objectId);
  4.         $this->_app_voc = new app_voc();
  5.     }
  6.  
  7.  
  8.  
  9.  
  10.     function get($objectId=null) {
  11.         if ($objectId == 0) return false;
  12.         if (parent::get($objectId)) {
  13. //                                   echo "in get clinic, $objectId, ".get_class($this)."<br>";
  14.  
  15.             if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
  16.                 $newShop = new ComissionShop();
  17.                 if ($newShop->get($objectId)) {
  18.                         if (class_exists($newShop)) {
  19.                 return new $newShop;
  20.                     $this->getCrncyDst();
  21.                     return true;
  22.                 }
  23.                 return false;
  24.             }
  25.  
  26.             if ($this->getVariable('type') == 'repair' and get_class($this)!='repairshop') {
  27.                 $newShop = new RepairShop();
  28.                 if ($newShop->get($objectId)) {
  29.                     if (class_exists($newShop)) {
  30.                 return new $newShop;
  31.                     return true;
  32.                 }
  33.                 return false;
  34.             }
  35.  
  36.              if ($this->getVariable('type') == 'clinic' and get_class($this)!='clinic') {
  37.                 $newShop = new Clinic();
  38. //                   echo "in get clinic, $objectId, ".get_class($this)."<br>";
  39.  
  40.                if ($newShop->get($objectId)) {
  41.                     if (class_exists($newShop)) {
  42.                 return new $newShop;
  43.                     return true;
  44.                 }
  45.                 return false;
  46.             }
  47.  
  48.              if ($this->getVariable('type') == 'magic' and get_class($this)!='magicshop') {
  49.                 $newShop = new MagicShop();
  50. //                   echo "in get clinic, $objectId, ".get_class($this)."<br>";
  51.  
  52.                if ($newShop->get($objectId)) {
  53.                     if (class_exists($newShop)) {
  54.                 return new $newShop;
  55.                     return true;
  56.                 }
  57.                 return false;
  58.             }
  59.  
  60.             if ($this->getVariable('type') == 'consulting' and get_class($this)!='consulting') {
  61.                 $newShop = new Consulting();
  62. //                   echo "in get clinic, $objectId, ".get_class($this)."<br>";
  63.  
  64.                if ($newShop->get($objectId)) {
  65.                     if (class_exists($newShop)) {
  66.                 return new $newShop;
  67.                     return true;
  68.                 }
  69.                 return false;
  70.             }
  71.  
  72.             if ($this->getVariable('type') == 'promotion' and get_class($this)!='promotion') {
  73.                 $newShop = new Promotion();
  74.                if ($newShop->get($objectId)) {
  75.                     if (class_exists($newShop)) {
  76.                 return new $newShop;
  77.                     return true;
  78.                 }
  79.                 return false;
  80.             }
  81.  
  82.             if ($this->getVariable('type') == 'mine' and get_class($this)!='mine') {
  83.                 $newShop = new Mine();
  84.                if ($newShop->get($objectId)) {
  85.                     if (class_exists($newShop)) {
  86.                 return new $newShop;
  87.                     return true;
  88.                 }
  89.                 return false;
  90.             }
  91.  
  92.             if ($this->getVariable('type') == 'transport' and get_class($this)!='transportation') {
  93.                 $newShop = new Transportation();
  94.                if ($newShop->get($objectId)) {
  95.                     if (class_exists($newShop)) {
  96.                 return new $newShop;
  97.                     return true;
  98.                 }
  99.                 return false;
  100.             }
  101.  
  102.             if ($this->getVariable('type') == 'ad_board' and get_class($this)!='adboard') {
  103.                 $newShop = new AdBoard();
  104.                if ($newShop->get($objectId)) {
  105.                     if (class_exists($newShop)) {
  106.                 return new $newShop;
  107.                     return true;
  108.                 }
  109.                 return false;
  110.             }
  111.  
  112.             return true;
  113.         } else {
  114.             return false;
  115.         }
  116.     }
  117.  
 
 Top
evgenijj
Отправлено: 30 Октября, 2007 - 13:44:23
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




XopoIII пишет:
evgenijj
спасибо большое, посмотрел попробовал так как ты сказал, все прошло, но блин теперь выдает ошибку
Parse error: parse error, unexpected $end in T:homelocalhost3classesShop.php on line 2434

Тебе не говорили, что скобки надо закрывать? У тебя там около 10 скобок на закрыто.
 
 Top
XopoIII
Отправлено: 30 Октября, 2007 - 13:56:57
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




ой а как это я так=) буду исправлять прошу прощения, но думаю не заработает\n\n(Добавление)
Parse error: parse error, unexpected ';', expecting T_FUNCTION in T:homelocalhost3classesShop.php on line 2434

получается вот такая ерунда, это значит где то незакончина правильно строка? нужно найти где поставить ; правильно?=(\n\n(Добавление)
evgenijj
прости, но может есть какая нибуть программа для поиска синтаксических ошибок? а то что то 2500 строк смотреть чекнусь=(
 
 Top
evgenijj
Отправлено: 30 Октября, 2007 - 14:36:41
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




XopoIII пишет:

прости, но может есть какая нибуть программа для поиска синтаксических ошибок? а то что то 2500 строк смотреть чекнусь=(


1. Отступы
2. Редактор с подсветкой синтаксиса


Прикреплено изображение (Нажмите для увеличения)
att-472725593d7a0code.jpg
 
 Top
XopoIII
Отправлено: 30 Октября, 2007 - 15:19:53
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




evgenijj
а что именно означает эта ошибка ты незнаешь?=(
прости может можно как нибуть прикрепить файл со скриптом или передать его тебе чтобы ты помог?\n\n(Добавление)
вроде более ли менее разобрался теперь такая проблема=)
Parse error: parse error, unexpected T_CLASS, expecting T_FUNCTION in T:homelocalhost3classesTrauma.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;
}

}

что может в быть в той строке не правильно вообще не понимаю=(
 
 Top
dj_ras
Отправлено: 15 Ноября, 2014 - 03:36:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Цитата:
что может в быть в той строке не правильно вообще не понимаю=(


PHP5 -
$this is a reserved variable name and cannot manually be assigned a value.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB