За последние 24 часа нас посетили 62728 программистов и 1740 роботов. Сейчас ищут 982 программиста ...

Объясните по классам не понимаю

Тема в разделе "PHP для новичков", создана пользователем cha0s, 3 ноя 2014.

  1. cha0s

    cha0s Новичок

    С нами с:
    3 ноя 2014
    Сообщения:
    4
    Симпатии:
    0
    я не буду приводить полный класс, а только кусок, синтаксических ошибок нету.

    Код (Text):
    1. class ControllerModuleQuickcheckout extends Controller {
    2.                     public $cyp_price = 0;
    3.  
    4.                     public function getPrice() {                   
    5.                         return $this->cyp_price;
    6.                     }
    7.  
    8.                     public function setPrice($price)
    9.                     {
    10.                         if(is_numeric($price))
    11.                         {
    12.                           $this->cyp_price = (float)$price;
    13.                         }
    14.                     }
    15.  
    16. public function refresh_step4() {
    17.                 $this->setPrice(5); // устанавливаю значение все ок оно устанавливается         
    18.             }  
    19.  
    20. private function test() {
    21.                 $test = $this->getPrice(); // почему результат 0????????????????    
    22.             }
    что не так? по сути мне нужна переменная к которой я бы мог обратиться из любого метода данного класса, пробовал уже использовать и global $var, и $GLOBALS['var'] что-то не выходит все-равно другие методы не видят значение переменной, need help :)
     
  2. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    весь файл давай! ты вызываешь из глобального кода????? у тебя же приват медот!!!
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    // устанавливаю значение все ок оно устанавливается - как проверяется данное утверждение?
     
  4. cha0s

    cha0s Новичок

    С нами с:
    3 ноя 2014
    Сообщения:
    4
    Симпатии:
    0
    да легко например так

    Код (Text):
    1.  
    2. public function refresh_step4() {
    3.             $this->setPrice(5);   // устанавливаю значение все ок оно устанавливается
    4.         $output = print_r($this->getPrice(), true);
    5.         file_put_contents('file.txt', $output);          
    6.          }  
    в файл приходит моя 5.

    а тут
    Код (Text):
    1.  
    2. private function test() {
    3.             $test = $this->getPrice(); // результат 0
    4.          }
    Добавлено спустя 2 минуты 6 секунд:
    он слишком огромный, этот код рабочий, без ошибок синтаксических, мне надо просто переменную получить в private методе вот и все... это возможно? если это вызывается в рамках одного расширенного класса?
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ты показываешь опять определения функций, покажи как ты делаешь остальное.
     
  6. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    private function test() {
    $test = $this->getPrice(); // результат 0
    }

    Где ты делаешь вызов test();

    он же приват!!!!!!!
    лично я не вижу гду ты вызываешь
     
  7. cha0s

    cha0s Новичок

    С нами с:
    3 ноя 2014
    Сообщения:
    4
    Симпатии:
    0
    все проблему решил, оказывается ajax'om 2 раза подавались данные на контроллер :) с классом все ок.
     
  8. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Вот же заладил, приват, приват, что орешь то?)
    И чего теперь, что он приват?
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    В приведенном коде нет вызова приватного метода, можно предположить что его вызывают извне. Объяснить в чем тут косяк?
     
  10. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    У него не правильно передавался результат.
     
  11. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Интересно, откуда там 0, если в функции вообще нет никакого return? Создал переменную, присвоил ей какое-то значение, выкинул переменную на помойку.