За последние 24 часа нас посетили 70167 программистов и 1819 роботов. Сейчас ищут 349 программистов ...

Где переменная класса?

Тема в разделе "Вопросы от блондинок", создана пользователем Alex42, 21 ноя 2017.

Метки:
  1. Alex42

    Alex42 Новичок

    С нами с:
    20 ноя 2017
    Сообщения:
    22
    Симпатии:
    0
    Привет,
    мне надо вызвать переменную, к которая в файле review.php описана как this
    я не могу понять к какому пвсевдо классу обращается эта переменная. Если у вас есть соображения, пожалуйста поделитесь. Интересующая переменная в самом низу кода. Код начинается в файле именно так как здесь, никаких классов нет. Код работает, переменную выводит. Мне же она нужна чтобы всунуть ее на другую страницу

    Код (Text):
    1. <div class="uk-grid uk-grid-small" data-uk-grid-margin data-uk-grid-match="{target:'.rc-cart-review-details'}">
    2.     <div class="uk-width-1-1 uk-width-medium-1-2">
    3.         <div class="uk-panel uk-panel-box">
    4.             <h3 class="uk-panel-title"><i class="uk-icon-file-text-o"></i> <?php echo RCUtilities::$localization->order->details; ?></h3>
    5.             <div class="rc-cart-review-details">
    6.                 <dl class="uk-description-list-horizontal">
    7.                     <dt><?php echo RCUtilities::$localization->order->number; ?></dt>
    8.                     <dd><?php echo $this->cart->ID; ?></dd>
    --- Добавлено ---
    мне кажется, что я нашел ее в другом файле, RCCart.php
    Как обратиться к переменной ID?


    Код (Text):
    1. class RCCart {
    2.  
    3.     public function __construct () {
    4.        
    5.         $this->getID();
    6.        
    7.         $this->loadReferrer();
    8.         $this->loadCouponCode();
    9.         $this->loadItems();
    10.         $this->loadCustomer();
    11.         $this->loadOptions();
    12.         $this->loadShipping();
    13.         $this->loadPayment();
    14.        
    15.         $this->setTaxes();
    16.         $this->setTotal();
    17.        
    18.     }
    19.    
    20.     private function getID ($reset = FALSE) {
    21.        
    22.         $ID = strtoupper(uniqid());
    23.        
    24.         $this->ID = $reset ? RCUtilities::saveSessionData('ID', $ID) : RCUtilities::loadSessionData('ID', $ID);
    25.        
    26.     }
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.993
    Симпатии:
    759
    Переменная $this пишется внутри класса и означает объект этого класса.
    Т. е., допустим, есть класс:
    PHP:
    1. class Valera_mider{
    2.   public $mid = 'Валера';
    3.   public function mider(){
    4.   return $this->mid;
    5.   }
    6. }
    7. $obj = new Valera_mider();  // теперь создадим объект класса Valera_mider
    8.  
    9. $mider = $obj->mider(); // метод mider вернет значение свойства mid
     
  3. Alex42

    Alex42 Новичок

    С нами с:
    20 ноя 2017
    Сообщения:
    22
    Симпатии:
    0
    Это понятно, спасибо. Мне не понятно, к чему обращается $this из куска кода выше, классов-то нет никаких. Файл review.php начинается именно так, как написано выше.
    в браузере я вижу строку:
    index.php?cart/review - то есть он загружает файл reviev.php в директории cart

    но в нем нет классов, а он к чему-то обращается своим $this
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.993
    Симпатии:
    759
    возможно, этот файл инклудится к какому-то классу...
     
  5. Alex42

    Alex42 Новичок

    С нами с:
    20 ноя 2017
    Сообщения:
    22
    Симпатии:
    0
    То есть переменная относится к классу, к которой цепляется файл. То есть, говоря языком нуба браузер вначале грузит основной файл, потом подгружает еще этот.
    Проблема в том, что основной файл - index.php который выглядит точно так же, куча дивов без оговоренных классов.
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.993
    Симпатии:
    759
    это работает не так. Браузер не имеет дела с php вообще.
    Сервер возвращает ему только html страницу уже полную от <!DOCTYPE до </html>
    Дополнительно подгружаются только файлы, относящиеся к работе страницы (css, js и т д).
     
  7. Alex42

    Alex42 Новичок

    С нами с:
    20 ноя 2017
    Сообщения:
    22
    Симпатии:
    0
    Спасибо, это важное замечание. По совету с другого форума я дал команду принт рд на переменную $this, и у меня выкатило простюню. В ней я могу увидеть куда именно обращается $this чтобы ее сгенерировать ?
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.460
    Симпатии:
    325
    @Alex42, быть может, пора наконец-то прочитать мануал используемой библиотеки?
     
  9. Alex42

    Alex42 Новичок

    С нами с:
    20 ноя 2017
    Сообщения:
    22
    Симпатии:
    0
    Возможно. Это хороший универсальный ответ на любой вопрос в форуме. Я просто пытаюсь найти переменную в файле php чтобы передать ее дальше. Это абсолютно прикладная задача. Мне не нужно сейчас годами читать "мама мыла раму" развиваясь внутренне. Мне нужно имя конкретной переменной
     
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.460
    Симпатии:
    325
    Определившись с тем, что за библиотека используется - узнаете, каким образом подключаются view-шаблоны.
    При подключении соответственно в шаблон "передается" набор переменных...
    И узнаете, какой объект воплощает пресловутая $this (фронт-контроллер, view-представление или ещё что) и каким образом создается этот объект... (например, фабрикой, в конструктор которой передается путь до шаблона и его имя...)
    Далее - сможете найти в исходниках место "подключение" и определиться со своими дальнейшими действиями.