Yankovitz
Привет, на ООП нужно реализовать получение данных для ряда заранее не предопределённых таблиц из БД. Таблицы, которые уже есть, это ‘post’ и ‘page’. Есть ли более лучшее решение чем __callStatic?
Пример, что пока есть:
PHP:
class Field { // здесь MySQL запрос типа return SELECT * FROM {$name}fields WHERE id = $args[‘0’] AND name = $args[‘1’] } }И получение, данных:
PHP:
echo Field::post( [ 2, ‘meta_field’ ] );Печаль в том, что в метод __callStatic можно передать только 2 аргумента. И второй только в виде массива.
Есть ли паттерн, который позволил бы реализовать это в виде:
PHP:
echo Field::post( 2, ‘meta_field’ );Я пробовал так:
PHP:
echo Field::post( 2 )->meta_field;Но интерпретатор ожидаемо вернул ошибку. Так как передать можно только массив.
miketomlin
Оно так и работает
mkramer
в __callStatic можно передать сколько угодно аргументов, и они будут в массиве
MouseZver
Всё что нужно знать про ООП https://php.ru/forum/threads/staticheskie-metody-i-svojstva-ehto-oop.67320/
— Добавлено —
- У автора не ООП
- sql-Injection + буквенные/текстовые/символьные значения уничтожат синтаксис SQL
— Добавлено —
Интерпретатор вернул ошибку об отсутствии ключа 1 в массиве переменной $args