Перейти к содержимому


Помогите объяснить один момент в ООП на PHP новичку

новичок в ООП Свойство класса

Сообщений в теме: 92

#81 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 17 Март 2020 - 21:37

Просмотр сообщенияdim81 (17 Март 2020 - 20:36) писал:

Либо? то есть это разные значения? - $this->params и $param = array() у метода request ?
Вопрос по $param = array()
Откуда тогда в массив $param = array() приходит цифра 2 если у нас за это отвечает свойство $this->params в котором хранится имя и значение, например brand/2




protected function input($param = array()){

  parent::input();

  if($param['brand']){

	$this->type = "brand";
	$this->id = $this->clear_int($param['brand']);
  }

Ну так он же передается в методов качестве параметра.
$param = array() это объявление аргумента метода, то то что этот метод может принимать. Если же ничего не передавать, то по умолчанию будет пустой массив

#82 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 18 Март 2020 - 09:51

Почти понял, но не до конца). Можно с этого момента чуть подробнее, пожалуйста!

- то есть у нас наполнилось свойство $this->params например brand/2 - У нас все привязано к $this->params поскольку все приходит в это свойство через Route_Controller:

public function route(){

$obj = new $this->controller;
$obj->request($this->params);//заполнено brand/2 Route_Controller
}

Далее мы принимаем аргумент $param = array(), передаем его в input() или еще куда-то, где нужно по месту, в данном случае в input():

public function request($param = array()){

$this->init();
$this->input($param);
$this->output();

$this->get_page();
}

И далее мы уже указываем по месту те имена и значения, которые нам нужны, вот:

protected function input($param = array()){
parent::input();

if($param['brand']){

$this->type = "brand";
$this->id = $this->clear_int($param['brand']);
}

Правильно ли я понял, этот момент? Спасибо!

Сообщение отредактировал dim81: 18 Март 2020 - 10:00


#83 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 18 Март 2020 - 14:17

Да все верно.
Опять же я Вам говорил, что если что то не понятно, что и куда попадает. Можно брать распечатывать значения переменных и смотреть что в них попадает

#84 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 18 Март 2020 - 15:40

Благодарю Вас,
Я использую print_r и var_dump, но, например, в текущей ситуации, я не смог ими воспользоваться, поскольку при распечатке я лишь получаю имена и значения, а мне необходимо было понять цепочку связей, что из чего следует.

И на мой субъективный взгляд, этот момент показался сложным из всего курса, получилась большая связка...

но с вашей помощью все решилось),

Спасибо!

#85 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 08 Апрель 2020 - 18:27

Здравствуйте, всем! Вопрос на уровне логики php

Подскажите для чего мы считаем кол-во элементов в массиве, какая разница сколько в нем элементов?
- у нас есть массив $krohi и мы должны просто сравнить $krohi > 1 но так почему-то не получается.
- доказательство printr_r, то есть php видит все элементы, зачем тогда подсчет?

Спасибо!

<? if(count($krohi) > 1):?>

<a href="<?=SITE_URL?>">Главная</a> /
<a href="<?=SITE_URL?>catalog/parent/<?=$krohi[0]['brand_id']?>"><?=$krohi[0]['brand_name']?></a>/
<span><?=$krohi[1]['brand_name']?></span>

Сообщение отредактировал dim81: 09 Апрель 2020 - 05:52


#86 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 09 Апрель 2020 - 08:33

Здравствуйте!
count($krohi) - возвращает число, которое можно сравнить с другим числом. В свою очередь $krohi - хранит в себе не число, а массив, который нельзя сравнить с числом

#87 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 09 Апрель 2020 - 11:50

спасибо Вам за разъяснение, этот базовый момент, как раз для меня требовал понимание

#88 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 09 Апрель 2020 - 17:39

Просмотр сообщенияdim81 (09 Апрель 2020 - 11:50) писал:

спасибо Вам за разъяснение, этот базовый момент, как раз для меня требовал понимание
Пожалуйста!

#89 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 20 Апрель 2020 - 22:07

Здравствуйте, Виктор!

Объясните, пожалуйста, момент по файлу Catalog_Controller см. скриншот:

- вопрос выделил красным;
- и логику подчеркнул двумя цветами, если в чем-то ошибся, поправьте.


Примного благодарен.

Прикрепленные файлы

  • Прикрепленный файл  19-urok.jpg   152,16К   8 Количество загрузок:


#90 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 21 Апрель 2020 - 05:46

Просмотр сообщенияdim81 (20 Апрель 2020 - 22:07) писал:

Здравствуйте, Виктор!

Объясните, пожалуйста, момент по файлу Catalog_Controller см. скриншот:

- вопрос выделил красным;
- и логику подчеркнул двумя цветами, если в чем-то ошибся, поправьте.


Примного благодарен.
Здравствуйте!
Данные фрмирует класс Pager, а в переменой page содержится просто номер страницы которую нужно показать.

#91 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 21 Апрель 2020 - 09:06

Просмотр сообщенияMeits (21 Апрель 2020 - 05:46) писал:

Здравствуйте!
Данные фрмирует класс Pager, а в переменой page содержится просто номер страницы которую нужно показать.

Вопрос в другом:

Я понял что, Навигация - все что зеленым на скриншоте берется из параметра input($param = array() и далее
if($param['page']){
page = $this->clear_int($param['page']);

print_r($page); Получил число 4


Далее в Catalog_Controller у нас есть такой код:
$pager = new Pager(
$page,
'tovar',
array($this->type.'_id'=>$this->id,'publish'=>1),
'tovar_id',
'ASC',
QUANTITY,
QUANTITY_LINKS
);
В $page тоже содержится 4 - но это уже номер страницы url, а не навигации. Откуда пришло число 4 в $page?

Сообщение отредактировал dim81: 21 Апрель 2020 - 09:09


#92 Meits

    Продвинутый пользователь

  • Администраторы
  • 3 115 сообщений
Репутация: 285

Отправлено 21 Апрель 2020 - 10:26

Просмотр сообщенияdim81 (21 Апрель 2020 - 09:06) писал:



Вопрос в другом:

Я понял что, Навигация - все что зеленым на скриншоте берется из параметра input($param = array() и далее
if($param['page']){
page = $this->clear_int($param['page']);

print_r($page); Получил число 4


Далее в Catalog_Controller у нас есть такой код:
$pager = new Pager(
$page,
'tovar',
array($this->type.'_id'=>$this->id,'publish'=>1),
'tovar_id',
'ASC',
QUANTITY,
QUANTITY_LINKS
);
В $page тоже содержится 4 - но это уже номер страницы url, а не навигации. Откуда пришло число 4 в $page?
Так вот же оно
if($param['page']){
page = $this->clear_int($param['page']);

В запросе оно передается

#93 dim81

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 66 сообщений
Репутация: 0

Отправлено 21 Апрель 2020 - 11:05

Я думал что пагинация и url страниц это раздельные вещи и по разному формируются.

Получается, что они связаны, и было еще сомнение, что напрямую в объект $pager = new Pager нельзя передать переменную, оказалось можно, что логично.

Спасибо!





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных