意外的 T_VARIABLE 错误
Posted
技术标签:
【中文标题】意外的 T_VARIABLE 错误【英文标题】:Unexpected T_VARIABLE error 【发布时间】:2010-12-14 05:48:56 【问题描述】:好的,我知道这是一个很常见的问题,但到目前为止我发现的所有解决方案都涉及缺少分号或花括号,我知道这两种情况都不适合我。
我有一个可以很好地处理这个变量赋值的类:
session.php:
<?php
class session
...
var $host = 'localhost';
...
?>
太好了。但我想将我的数据库详细信息放在另一个文件中,所以我这样做了:
db_creds.php:
<?php
var $db_creds = array(
'host' => 'localhost',
...
);
?>
session.php
<?php
include('db_creds.php');
class session
...
var $host = $db_creds['host'];
...
?>
然后给了我这个错误:Parse error: syntax error, unexpected T_VARIABLE in ../session.php on line 74
,其中第 74 行是我的 var $host
分配。
我什至尝试在 session.php 中执行此操作,以确保问题不在包含中:
session.php
<?php
# include('db_creds.php');
class session
...
var $db_host = 'localhost';
var $host = $db_host;
...
?>
... 但这只会引发与上述相同的错误。
谁能告诉我这里发生了什么?我已经束手无策了!
【问题讨论】:
【参考方案1】:这里不允许使用变量,PHP中属性必须用常量初始化:
[…]这个初始化必须是一个常数值
[Source: php.net manual]
使用构造函数正确初始化值:
class session
var $host;
function __construct()
$this->host = $db_creds['host'];
【讨论】:
啊,明白了。对 PHP 类和诸如此类的东西仍然很陌生。谢谢! +1【参考方案2】:类名中的第一个字母应为大写(会话类)
你写了构造函数吗
通过 $this->property 访问类属性
【讨论】:
-1 第1点是主观的,第2点和第3点与OP的问题无关。以上是关于意外的 T_VARIABLE 错误的主要内容,如果未能解决你的问题,请参考以下文章
意外的 T_ENCAPSED_AND_WHITESPACE,预期 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 错误 [重复]
调试 Laravel 5 工匠迁移意外 T_VARIABLE FatalErrorException
解析错误,期待“T_STRING”或“T_VARIABLE”或“T_NUM_STRING”[关闭]
php中 t_variable 是啥情况啊?大侠帮忙谢谢了!
thinkphp 静态页面 一加标签 就有问题 (syntax error, unexpected ')', expecting T_VARIABLE or '$' )