J'ai l'erreur suivante dans mon projet Laravel après le téléchargement dans Bluehost cPanel. Mais sur le serveur local, il n'y a pas d'erreur.
Erreur d'analyse: erreur de syntaxe, 'const' inattendu (T_CONST), variable attendue (T_VARIABLE)
Voici le code
<?php
namespace Doctrine\DBAL;
use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
use Doctrine\DBAL\Exception\InvalidArgumentException;
use Closure;
use Exception;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Driver\Connection as DriverConnection;
use Doctrine\Common\EventManager;
use Doctrine\DBAL\Cache\ResultCacheStatement;
use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\DBAL\Cache\ArrayStatement;
use Doctrine\DBAL\Cache\CacheException;
use Doctrine\DBAL\Driver\PingableConnection;
use Throwable;
use function array_key_exists;
use function array_merge;
use function func_get_args;
use function implode;
use function is_int;
use function is_string;
use function key;
class Connection implements DriverConnection
{
public const TRANSACTION_READ_UNCOMMITTED = TransactionIsolationLevel::READ_UNCOMMITTED;
public const TRANSACTION_READ_COMMITTED = TransactionIsolationLevel::READ_COMMITTED;
public const TRANSACTION_REPEATABLE_READ = TransactionIsolationLevel::REPEATABLE_READ;
public const TRANSACTION_SERIALIZABLE = TransactionIsolationLevel::SERIALIZABLE;
public const PARAM_INT_ARRAY = ParameterType::INTEGER + self::ARRAY_PARAM_OFFSET;
public const PARAM_STR_ARRAY = ParameterType::STRING + self::ARRAY_PARAM_OFFSET;
const ARRAY_PARAM_OFFSET = 100;
protected $_conn;
protected $_config;
protected $_eventManager;
protected $_expr;
private $_isConnected = false;
private $autoCommit = true;
private $_transactionNestingLevel = 0;
private $_transactionIsolationLevel;
private $_nestTransactionsWithSavepoints = false;
private $_params = [];
private $platform;
protected $_schemaManager;
protected $_driver;
private $_isRollbackOnly = false;
protected $defaultFetchMode = FetchMode::ASSOCIATIVE;
Mon serveur local PHP est 7.2.0
Bluehost PHP est 7.0.0
Est-ce PHP problème lié à la version?
Comment régler ceci?
La possibilité de spécifier la visibilité des constantes de classe a été ajoutée uniquement dans PHP 7.1, à partir de la page de manuel
Remarque:
Depuis PHP 7.1.0 les modificateurs de visibilité sont autorisés pour les constantes de classe.
Donc, sur le serveur PHP 7.0, le
public const TRANSACTION_READ_UNCOMMITTED ...
les lignes ne doivent pas contenir le public
. Il dit également que
La visibilité par défaut des constantes de classe est publique.
Le public n'est donc pas nécessaire de toute façon.