Несколько ошибок в онлайн игре...

Discussion in 'PHP' started by Chrek625, 24 May 2009.

  1. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Доброго времени суток всем знатакам PHP.
    Помогите исправить несколько ошибок в движке онлайн игре.

    первая сама большая ошибка:
    Fatal error: Cannot re-assign $this in Z:\home\sirius\www\classes\Shop.php on line 75


    PHP:
    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;
                }
    и так далее...
    ошибка в строчке $this = $newShop;


    кто может помогите...
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    гы, ну попробуй так:

    $this->$newShop;
     
    1 person likes this.
  3. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    this это ключевое слово это указатель на нынешний класс и ты не можешь его переопределить ...

    $this = $newShop; - вот твоя ошибка

    решение: не используй переменную this
     
  4. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    помогло большое спасибо.

    ну вот ещё одна проблема почемуто не выводится капча... картинка вообще не выводится хотя и требует ввести. с чем это может быть связанно
     
  5. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Doom123 как не использовать? я сделал так как сказал Pashkela и ошибку перестало выводить.
     
  6. webjema

    webjema New Member

    Joined:
    23 May 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Если не стало ошибки. Это не значит что СТАЛО работать =)))))))
     
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Да? Т.е. в любом скрипте написав "this->$newShop;" и ошибка исчезает - значити не факт, что ошибки нет? :D
     
    1 person likes this.
  8. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Permutation programming?
     
  9. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Товарищи знатаки как говориться все проблемы по степени их поступления.

    у меня тут ещё много ошибок и одна самая противная из них это:

    Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\sirius\www\classes\Fighter.php on line 150


    вот фрагмент кода

    PHP:
    function get($objectId) {
            if (
    parent::get($objectId)) {
                
    $this->data array_merge($this->dataunserialize($this->data['user_info']));
                unset(
    $this->data['user_info']);
                return 
    true;
            } else {
                return 
    false;
            }
        }

    проблема опять же с $this...

    Посоветуйте что то в этом случае...
     
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    2 astrologer:

    simple magic:)

    2 Chrek625:

    Чувак, ты используешь какие-то классы, код которых не приводишь, думаешь тебе тут реально помогут? Врял ли. Начни с:

    PHP:
    <?php
    echo "\n1";
    ?>
    + http://www.translate.ru/ <- вот без этого точно прогресса не будет, хотя бы научиться переводить ошибки, которые тебе выдают прямо на твой широкоформатный монитор
     
  11. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    я не использую их... это код игры... помоги если можешь... если надо в силу возможностей заплачу... напиши мне в личку если захочешь помочь... обговорим цену...
     
  12. webjema

    webjema New Member

    Joined:
    23 May 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Чел. Ты реально полез не в свою степь. Не понимая что откуда берется вот так на форуме ты ее будешь чинить до новых веников.
    Говоря медицинским языком, ты пытаешься лечить симптомы, а надо искать причину болезни скрипта. Затыкая один симптом - будут вылазить другие.

    Надо посмотреть почему вообще эти ошибки вылезли. Это надо смотреть на весь скрипт (организм) в целом. И дебажить, дебажить, дебажить....
     
  13. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    webjema может ты поможешь? если вдруг захочешь помочь напиши мне 355949762
     
  14. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    помогите исправить последнюю ошибку... больше обращаться не буду...

    Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\sirius\www\classes\Fighter.php on line 150


    вот фрагмент кода...

    PHP:
       function get($objectId) {
            if (
    parent::get($objectId)) {
                
    $this->data array_merge($this->dataunserialize($this->data['user_info']));
                unset(
    $this->data['user_info']);
                return 
    true;
            } else {
                return 
    false;
            }
        }

    Полный скрипт
     
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    unserialize($this->data['user_info'])

    учите английский, пишет понятно: вот это (что сверху) - не массив
     
  16. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Я тебе уже писал как можно это решить, переписывать класс с 4 на 5 не простоя задача, простым изменением $this=$newShop на $this->$newShop(это вообше разные по смыслу операции) ты ничего не добьешься, с таким же успехом ты мог бы сделать и так //$this=$newShop
    и о чудо ошибка исчезла, это НЕ РЕНШЕНИЯ ПРОБЛЕМЫ А ЕЕ СКРЫТИЕ отсюда у тебя нарушаеться логика работы класса и ошибки полезут как из рока изобилия. Найди толкового кодера и не занимайся как написал astrologer - Permutation programming, во первых время збережешь во вторых код будет рабочим.
     
  17. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Ну так помогите кто то из вас... я заплачу.
    МНЕ НУЖНА ВАША ПОМОЩЬ.
    я в долгу не останусь.
     
  18. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22

    мдя ... ну еси ты не понел что ты сделал то лучшеб ваще этот пост не писал ... таким образом ты обратился к переменной newshop в нынешнем классе .. а посему ты не переназначил переменную $this а просто обратился к переменой ... учи ООП гения млять ..
     
    #18 Doom123, 25 May 2009
    Last edited: 25 May 2009
  19. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Мой тебе совет сходи сюда -> http://www.free-lance.ru/ во первых в условиях жесткой конкуренции особенно большие ценны там не буду назначать(конечно там есть супермего_павлины_ты_взгляни_на_мое_портфолио и всякие фирмы), во вторых там есть граммотные люди(но и всяких hello_world_зделаю_за_5_минут тоже хватает), конечно абсолютно весь класс переписывать не нужно - поэтому баков в 15-30 тебе это ТАМ обойдется(хотя смотря по количеству инклюдов то тебе лечше найти хост с php4).