当前位置: 首页 > 知识库问答 >
问题:

分析错误:语法错误,Laravel项目中出现意外的“const”(T_const),应为变量(T_variable)

乌甫
2023-03-14

在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个答案

闽阳州
2023-03-14

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

我的指示是:

const CONSTANT = 'jkl';

我得到的错误是:

语法错误,在。。。

我把指令改为:

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;

请始终记住,常规变量应该通过在其名称之前使用$来解决,但是常量变量应该直接解决,如我在上面的代码中所示。

房学
2023-03-14

指定类常量可见性的功能仅在PHP7.1中从手册页面添加

注:

从PHP7.1开始。类常量允许0个可见性修饰符。

因此,在PHP7.0服务器

public const TRANSACTION_READ_UNCOMMITTED ...

行上不应该有Public。它还说

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

因此,无论如何都不需要公开。

 类似资料: