解析错误:语法错误,意外的'const'(T_CONST),cPanel中的Laravel项目中的预期变量(T_VARIABLE)

时间:2018-07-28 04:19:52

标签: php laravel cpanel laravel-5.5 bluehost

在Bluehost cPanel中上传后,我的Laravel项目中出现以下错误。但是在本地服务器中没有错误。

  

解析错误:语法错误,意外的'const'(T_CONST),预期变量(T_VARIABLE)

这是代码

<?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;

我的本​​地服务器PHP版本是7.2.0

Bluehost Php版本为7.0.0

与PHP版本相关的问题吗?

如何解决此问题?请帮助。...

2 个答案:

答案 0 :(得分:11)

指定类常量可见性的功能仅在manual page的PHP 7.1中添加

  

注意:

     

自PHP 7.1.0起,类常量允许使用可见性修饰符。

因此在PHP 7.0服务器上,

public const TRANSACTION_READ_UNCOMMITTED ...

行中不应包含public。它还说

  

类常量的默认可见性是public。

所以反正不需要公开。

答案 1 :(得分:1)

似乎您想定义一个常量变量。

我的指示是:<​​/ p>

const CONSTANT = 'jkl';

我得到的错误:

syntax error, unexpected 'const' (T_CONST) in ...

我将该指令更改为:

define('CONSTANT', 'jkl');
echo CONSTANT;

输出:

jkl

方法'define'的语法:

define('variable_name', 'value_of_the_variable', [case-insensitive_constant_name = true/false]);

例如。

define('CONSTANT3', 'ghi', true);
echo CONSTANT3;
define('constant3', 'ghi'); //Defining 'constant3' again will give an error.

但是

define('CONSTANT3', 'ghi');
echo CONSTANT3;
define('constant3', 'ghi'); //This won't give an error.
echo constant3;

始终记住,常规变量应在其名称前使用'$'进行寻址,而常量变量应按我在上面的代码中所示的那样直接进行寻址。