Задать вопрос
AllDecay
@AllDecay
Вечно отдыхающий.

Syntax error, unexpected '$this' (T_VARIABLE) — как решить проблему?

Пишу небольшой обработчик под ВКонтакте и сталкиваюсь с такой проблемой:
PHP Parse error: syntax error, unexpected '$this' (T_VARIABLE) in /home/i1cIXY/prog.php on line 60
Сама строка:
$this->message = sprintf("Репост сделан! Проверить его наличие Вы можете по этой ссылке: %s", $link);

Весь код:
<?php
    include './classes/Post.class.php';
    include './classes/AjaxRequest.class.php';
   
    class RepostAjaxRequest extends AjaxRequest
    {
        public $actions = array(
        "run" => "run",
        );
       
        public function run() {
            if ($_SERVER["REQUEST_METHOD"] !== "POST") {
                // Method Not Allowed
                http_response_code(405);
                header("Allow: POST");
                $this->setFieldError("main", "Method Not Allowed");
                return;
            }
            $url = $this->getRequestParam("url");
            $post = $this->getRequestParam("post");
            $postinfo = explode("_", $url);
            $copyinfo = explode("_", $post);
           
            if (empty($url)) {
                $this->setFieldError("url", "Укажите ссылку на пост");
                return;
            }
           
            if (empty($post)) {
                $this->setFieldError("post", "Укажите ссылку на репост");
                return;
            }
           
            if ($postinfo[0] !== $copyinfo[0]) {
                $this->setFieldError("post", "ID сообществ не совпадают");
                return;
            }
           
            $members = file_get_contents("http://api.vk.com/method/groups.getMembers?group_id=" . $postinfo[0]);
            $members = json_decode($members);
            $members = $members->response->count;
           
            if ($members < 200) {
                $this->setFieldError("err", "Минимальное количество участников в сообществе - 200. У Вас же их - ". $members);
                return;
            }
            // в условии сразу смотрим на дату последнего репоста
            $result = $dbh->prepare("SELECT COUNT(*) FROM `reposts` WHERE `id` = :id AND SELECT DATEDIFF (`date`, CURDATE()) > 7");
            $result->execute([
            ':id' => $id
            ]);
            $result = $result->fetchAll();
           
            //если записей нет - постим
            if (!count($result)) {
                $response = $this->post($url);
                if ($response->success !== 1) {
                    $link = "https://vk.com/wall-100562658_" . $response->post_id;
                    $this->addPost($postinfo, $url, $post)
                    $this->message = sprintf("Репост сделан! Проверить его наличие Вы можете по этой ссылке: %s", $link);
                    $this->status = "ok";
                    $this->setResponse("redirect", ".");
                    } else {
                    $this->setFieldError("err", "Ошибка! Сервер ВКонтакте вернул ответ с кодом ошибки: ". $response->error->error_code);
                    return;
                }
                } else {
                $this->setFieldError("err", "Сожалеем, но мы уже делали с Вами репост на этой неделе.");
                return;
            }
        }
    }
    $ajaxRequest = new RepostAjaxRequest($_REQUEST);
    $ajaxRequest->showResponse();
  • Вопрос задан
  • 1469 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
$this->addPost($postinfo, $url, $post)
Точки с запятой в конце строки не хватает
Ответ написан
baskserg
@baskserg
Better skills, better life.
$this->addPost($postinfo, $url, $post); // Точка с запятой пропущена
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы