PHP Parse error: syntax error, unexpected ограничение в хостинге, или же всё же ошибка?
Как уже сказали, дело в версии РНР.
Плюс этот неграмотный винегрет надо выкинуть и переписать заново
вот тебе нормальный код

class Database
{
    public $db;

    public function __construct($host, $user, $password, $database)
    {
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        $this->db = new MySQLi($host, $user, $password, $database);
        $this->db->set_charset("utf8mb4");
    }

    public function query($query, $params = [], $types= '') {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $this->db->prepare($query);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    public function select($query, $params = [], $types= '') {
        if (!$params) {
            return $this->db->query($query);
        } else {
            return $this->query($query, $params)->get_result();
        }
    }
}
Дело в версии php. И это точно. У вас стоит 5.4 на сервере, никакой 7.4 там не пахнет. Проверяйте через phpinfo()