@4sadly

Можно ли упростить функции?

public static function dispense($table) //создает объект из строки 
    {
        $stmt = self::$db->query('DESCRIBE ' . $table);
        $r = [];
        foreach ($stmt as $field) {
            foreach ($field as $key => $value) {
                if ($key === 'Field') unset($r[$value]);
            }
        }
        $r['tablename'] = $table;
        return $r;
    }
 public static function create($array) //создает строку
    {
        $table = $array['tablename'];
        unset($array['tablename']);
        $questionmarks = [];
        $c = sizeof($array);
        for ($i = 0; $i < $c; ++$i) {
            $questionmarks[] = '?';
        }
        $stmt = self::$db->prepare('INSERT INTO `' . $table . '` (' . implode(',', array_keys($array)) . ') VALUES (' . implode(',', $questionmarks) . ')');
        $stmt->execute(array_values($array));
    }
public static function delete($table, $query, $params = []) //удаляет строку
    {
        self::$db->prepare('DELETE FROM `' . $table . '` WHERE ' . $query)->execute($params);
    }
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Adamos
@Adamos
Конечно. Например, первую функцию можно заменить на
return ['tablename' => $table];
Больше она все равно ничего не делает.

А если вы, кроме unset, узнаете еще хотя бы об одной функции - array_fill, то и вторую функцию удастся сократить вполовину.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы