С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375

Передать массив/функцию из класса в другой файл

02.01.2025, 18:05. Показов 600. Ответов 7
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Есть файл с данными в классе:

PHP
1
2
3
4
5
class EVPL_History_Sessions extends WP_List_Table {
function hello() {
    echo "Привет";
  }
 }
И есть другой файл, куда нужно передать данные, в данной примере функцию из класса:

PHP
1
2
 require_once( '../путьдофайла/class-history-sessions.php' );
 hello();
Как вызвать функцию из класса?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2025, 18:05
Ответы с готовыми решениями:

Как передать функцию из одного класса в другой?
У меня есть два файла с классами Welcome_page и Settings В файле с классом Welcome_page есть метод, который создает плеер с музыкой, а в...

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

Как передать объект класса в другой файл?
Здравствуйте, подскажите, как правильно передать объект класса в функцию в другом файле. Хочу написать функцию change(), которая бы меняла...

7
Эксперт PHP
 Аватар для liris
4369 / 1009 / 154
Регистрация: 16.01.2023
Сообщений: 2,503
02.01.2025, 18:55
Функцию из класса просто так вызвать нельзя. Функции в классе называются "метод". Чтобы обратить к нестатической функции, она должна быть публичной, и у вас должен быть создан экземпляр класса. Например:

PHP
1
2
$session = new EVPL_History_Sessions();
$session->hello();
1
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
02.01.2025, 21:12  [ТС]
liris, да, но тут у класса есть ещё "наследие"
PHP
1
WP_List_Table
, из за чего не получается вызвать функцию.
Ошибка:
Fatal error: Uncaught Error: Call to undefined function wp_parse_args() in /var/www/www-root/data/www/Home/wp-admin/includes/class-wp-list-table.php:139 Stack trace: #0 /путьдофайла/class-history-sessions.php(25): WP_List_Table->__construct() #1 /путьдофайла/event-stats.php(16): EVPL_History_Sessions->__construct() #2 {main} thrown in /путьдофайла/class-wp-list-table.php on line 139

class-wp-list-table.php - это системный файл wordpress, я думаю что не нужно туда лезть и исправлять ошибки ... Можно ли как то вызвать функцию, вне "WP_List_Table" наследия.
0
1185 / 755 / 127
Регистрация: 10.03.2012
Сообщений: 4,855
02.01.2025, 21:26
PHP
1
2
3
require_once('../путьдофайла/class-history-sessions.php');
$history_sessions = new EVPL_History_Sessions();
$history_sessions->hello();
0
Эксперт PHP
 Аватар для liris
4369 / 1009 / 154
Регистрация: 16.01.2023
Сообщений: 2,503
03.01.2025, 08:23
Цитата Сообщение от Fruit Посмотреть сообщение
Можно ли как то вызвать функцию, вне "WP_List_Table" наследия.
А для чего вы его наследуете?
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
03.01.2025, 12:14  [ТС]
liris, для создания таблицы wp.
Подключается таким способом:
PHP
1
2
3
if( ! class_exists( 'WP_List_Table' ) ) {
    require_once( '../wp-admin/includes/class-wp-list-table.php' );
}
А затем уже
PHP
1
class EVPL_History_Sessions extends WP_List_Table { ... }
0
Эксперт PHP
 Аватар для liris
4369 / 1009 / 154
Регистрация: 16.01.2023
Сообщений: 2,503
03.01.2025, 16:50
Цитата Сообщение от Fruit Посмотреть сообщение
Fatal error: Uncaught Error: Call to undefined function wp_parse_args()
У вас ошибка, что родительский класс при попытке вызвать конструктор не получил нужное количество аргументов. Соответственно, если вы наследуете функционал родителя, то в классе-наследнике вам нужно либо реализовать все, что требует класс-родитель. Либо переопределить методы.

Посмотрите вот эту страничку, здесь есть пример правильного класса-наследника:

https://wp-kama.ru/function/wp_list_table

Если у вас будет правильно реализован класс (с учетом всех требований), то дальше пользоваться вашей функцией будет просто:

PHP
1
2
$session = new EVPL_History_Sessions();
$session->hello();
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 375
03.01.2025, 20:35  [ТС]
Цитата Сообщение от liris Посмотреть сообщение
Посмотрите вот эту страничку, здесь есть пример правильного класса-наследника:
Дак вот плагин сделан уже по этой инструкции, автором.
Страница статистики. Со всеми функциями, подсчётами и т.п. И данные/результаты всего этого, нужно продублировать на другой странице, где будет генерироваться, pdf файл. Планировалось, собрать всё это в один массив и разом перенести.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2025, 20:35
Помогаю со студенческими работами здесь

Передать в функцию массив символов и конвертировать в другой массив
Форумчане! У меня вопрос по синтаксическим конструкциям. Нужно передать в функцию массив символов (один из аргументов командной...

Как передать двумерный массив из одного класса в другой?
Нужна помощь! как передать двумерный массив из одного класса в другой?

Передать массив объектов класса Matrix в функцию
не сплю уже 2ые сутки кропаю данную задачу....не подскажете ли как еще возможно выполнить следующую задачу: Создать массив объектов...

Как передать массив как параметр в функцию и вывести другой массив из этой функции?
как сделать так, что бы массив mas передавался в функцию вместо mas2 и потом в итоге вывести на экран значения массива masn? #include...

Передать данные одного обьекта класса в другой обьект на другой форме
Здравствуйте прочитал вот это https://www.cyberforum.ru/windows-forms/thread110436.html но так и не понял как передать данные одного...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru