Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Андрюшатина
80 / 59 / 47
Регистрация: 27.11.2014
Сообщений: 359

Передать аргумент метода через аргумент другого метода

05.10.2017, 21:01. Показов 1429. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Простой пример того, что хочу сделать.

Есть массив констант в классе А. Каждое значение константы это id товара в БД.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class А
{
    const А1 = 1;
    const А2 = 2;
 
  // делаю из констант массив
    public static function getConstants() {
        $oClass = new А(__CLASS__);
        return $oClass->getConstants();
    }
  //тут получаю товары по ID из БД
     public static function getProductName($id)
    {
        return self::findOne($id)->name;
 
     }
}
Теперь в другом классе (Класс B) хочу сделать вывод товаров по переданному в аргументе ID. То что пытаюсь реализовать ниже, но что-то не получается.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class B
{
//загнул в аргумент массив констант
    public  function productIdByConst($const = ' ')
    {
        $gotConst = А::getConstants($const);
    }
//тут пытаюсь получить из массива констант название товара по номеру константы
    public function  productNameByConst($variabl = ' ')
    {
        $fromTblProduct = new А();
        $getConst = B::productIdByConst();
        $getIdToName = $fromTblProduct::getProductName($getConst);
        return $getIdToName = $variabl;
    }
 private function getData()
    {
                    $article = new С([
//а тут полный ступор, как мне из одного аргумента метода, передать параметры другого аргумента метода и вывести их.
                    'category' => .........................,
                    'ID' => '.......................',
                ]);
      }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2017, 21:01
Ответы с готовыми решениями:

Передать объект класса как аргумент метода в поток
Имеется класс npimono, код использования: private void loadListButton_Click(object sender, EventArgs e) { ...

Аргумент метода forEach
Здравствуйте. Помогите пожалуйста понять, что происходить в этой строчке. this.dataSource.getData().forEach(p =>...

Аргумент метода с модификатором final
В чем принципиальное отличие между данными методами? void doSomth(final User user) {} void doSomth(User user) {}

17
06.10.2017, 14:30

Не по теме:

аццкая лапша

0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
06.10.2017, 14:57
Не совсем понял, что нужно, но хранить id товаров в константах - это жесть...
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
07.10.2017, 14:45
Цитата Сообщение от Зверушь Посмотреть сообщение
Не совсем понял, что нужно, но хранить id товаров в константах - это жесть...
Да не, это как раз норм. Где же их ещё хранить?
0
07.10.2017, 15:58

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
Да не, это как раз норм. Где же их ещё хранить?
В бд, естественно.

0
07.10.2017, 17:15

Не по теме:

Цитата Сообщение от pav1uxa Посмотреть сообщение
В бд, естественно.
Это само собой. Но должна же быть какая-то связь между бд и кодом. Константы в классах/интерфейсах как раз вполне для этого подходят.

0
07.10.2017, 17:34

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
Это само собой. Но должна же быть какая-то связь между бд и кодом. Константы в классах/интерфейсах как раз вполне для этого подходят.
Товар это такая вещь, его можно убрать, его можно добавить. Для этого и делаются cms. Чтобы все можно было сделать автоматически, через интерфейс сайта, не залезая в код. Вы же не в ручную в коде будете его прописывать каждый раз при добавлении?

0
07.10.2017, 20:02

Не по теме:

Цитата Сообщение от pav1uxa Посмотреть сообщение
Товар это такая вещь, его можно убрать, его можно добавить. Для этого и делаются cms. Чтобы все можно было сделать автоматически, через интерфейс сайта, не залезая в код. Вы же не в ручную в коде будете его прописывать каждый раз при добавлении?
Товары бывают разные. У некоторых довольно кастомная логика, принципиально отличающаяся от логики других товаров. И да,
их приходится отдельно в коде описывать. У меня встречались товары, для описания которых приходилось по 20 классов писать

0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.10.2017, 20:57
andr-xw, тогда уж в конфиг выносить ид, иначе пиидется следить чтобы во всех окружениях в бд совпадали эти ид
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
07.10.2017, 23:12
Jewbacabra, в таких случаях использую UUID вместо обычного инкрементного id. И далее синхронизируются при помощи миграций или конфигов. И можно из конфигов генерить классы/интерфейсы с константами, для более удобной работы с кодом.
0
08.10.2017, 09:10

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
Товары бывают разные. У некоторых довольно кастомная логика, принципиально отличающаяся от логики других товаров.ь
Причем тут логика, мы вроде про ID говорим?

Это уже отдельно свойство (поле таблицы) - тип товара. Или добавлять логику признаками (флажками). Или как хотите называйте. Тоже указывается при добавлении/изменении. Даже если он один с таким типом на всю базу - это неправильно писать его ID прямо в коде.
Цитата Сообщение от andr-xw Посмотреть сообщение
И да, их приходится отдельно в коде описывать. У меня встречались товары, для описания которых приходилось по 20 классов писать
Опять же, к ID никакого отношения не имеет.

0
08.10.2017, 14:17

Не по теме:

Ok, bro, предположим, ты ввел колонку "тип", содержащую внешний ключ на таблицу `type`, в которой описаны типы товаров. Типы, кстати, тоже можно из админки создавать и редактировать. Однако в зависимости от типа, мы должны закодить отдельную логику. И вот мы снова возвращаемся к исходной задаче - обращению к ID из кода.

0
08.10.2017, 14:27

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
И вот мы снова возвращаемся к исходной задаче - обращению к ID из кода.
Как правило типы меняются гораздо реже чем товары, их меньше и далеко не всегда нужно их создание

0
08.10.2017, 20:04

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
Ok, bro, предположим, ты ввел колонку "тип", содержащую внешний ключ на таблицу `type`, в которой описаны типы товаров.
Нет я не вводил никаких внешних ключей и таблиц, это Вы уже придумали.
Цитата Сообщение от andr-xw Посмотреть сообщение
Типы, кстати, тоже можно из админки создавать и редактировать.
Каким образом Вы в админке собрались описать логику товара?
Цитата Сообщение от andr-xw Посмотреть сообщение
И вот мы снова возвращаемся к исходной задаче - обращению к ID из кода.
Не знаю куда Вы там возвращаетесь. Я даже в Вашем потоке сознания не уловил связи с ID.

0
09.10.2017, 02:59

Не по теме:

Цитата Сообщение от pav1uxa Посмотреть сообщение
Нет я не вводил никаких внешних ключей и таблиц, это Вы уже придумали.
Я усложнил задачу. Не все же хелоу ворлды писать)

Цитата Сообщение от pav1uxa Посмотреть сообщение
Не знаю куда Вы там возвращаетесь. Я даже в Вашем потоке сознания не уловил связи с ID.
Ок. Видимо твое время ещё не пришло.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Как правило типы меняются гораздо реже чем товары, их меньше и далеко не всегда нужно их создание
Это ничего не меняет. Бывают магазины с 10 товарами, а бывают cо 100 типами товаров. Суть задачи остается прежней.

0
09.10.2017, 17:51

Не по теме:

Цитата Сообщение от andr-xw Посмотреть сообщение
Я усложнил задачу. Не все же хелоу ворлды писать)
Странно Вы о костылях отзываетесь.
Цитата Сообщение от andr-xw Посмотреть сообщение
Ок. Видимо твое время ещё не пришло.
Ну да, не всем дано ID товара из БД прописывать в код жестко...

0
09.10.2017, 18:03

Не по теме:

Цитата Сообщение от pav1uxa Посмотреть сообщение
Странно Вы о костылях отзываетесь.

Ну да, не всем дано ID товара из БД прописывать в код жестко...
Когда тебе придет задача, в которой нужно будет сделать так, тогда ты меня поймешь))

0
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
10.10.2017, 23:09
пипец. расстрелы конечно отменены.. ну и правильно. не убивать же, но лечить срочно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2017, 23:09
Помогаю со студенческими работами здесь

Класс как аргумент своего же метода
В примере ниже происходит лишний (по замыслу не нужный) вызов деструктора. Вопрос в следующем: как в методе класса в качестве аргумента...

Как изменить аргумент метода в откомпилированной программе?
Добрый день. Как пример, есть такая программа: ... static void Main(string args) { ...

Можно ли записать в аргумент метода, другой метод?
Доброго времени суток. Вопрос заключается в том, можно ли в аргументы метода записать метод типа double? Конкретно. У меня есть метод...

Функция как аргумент шаблонного метода класса
Пытаюсь передать функцию для сравнения в сортировке слиянием, но что-то не получается. Подскажите, как исправить этот код, чтобы сортировка...

И снова ни одна из перегрузок метода не принимает 1 аргумент!
Всем доброго времени. Нашел на форуме несколько аналогичных тем, но увы и ах... Немного не в тему. В общем помогите найти ошибку или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru