sven_tesla
@sven_tesla
Учу PHP не ругайте

Синтаксическая ошибка в классе?

Ребят здравствуйте подскажите пожалуйста почему выскакивает синтаксическая ошибка
) Parse error: syntax error, unexpected '?' in D:\OSPanel\domains\localhost\site\src\MyProject\Services\Db.php on line 21


код файла Db.php
<?php
namespace MyProject\Services;

class Db
{
     /** @var \PDO */
     private $pdo;

     public function __construct()
     {
          $dbOptions = (require __DIR__ . '/../../setting.php')['db'];

          $this->pdo = new \PDO(
                'mysql:host=' . $dbOptions['host'] . ';dbname=' . $dbOptions['dbname'],
                $dbOptions['user'],
                $dbOptions['password']
          );
          $this->pdo->exec('SET NAMES UTF8');
     }

     public function query(string $sql, $params = []): ?array
     {
          $sth = $this->pdo->prepare($sql);
          $result = $sth->execute($params);

          if (false === $result) {
               return null;
          }

          return $sth->fetchAll();
     }
}
  • Вопрос задан
  • 117 просмотров
Решения вопроса 2
DevMan
@DevMan
a версия пыха случайно не ниже 7.1?
Ответ написан
Комментировать
summoner2015
@summoner2015
Backend всему голова
Скорее всего php ниже 7.1, и ошибка ругается именно на
public function query(string $sql, $params = []): ?array

Возможность указывать тип возвращаемого результата в таком виде ?array появилась только в 7.1.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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