2009-11-07 104 views
7

好的,我知道这是一个普遍的问题,但迄今为止我发现的所有解决方案都包含缺少的分号或花括号,这两种方法我都不知道。意外的T_VARIABLE错误

我有一个类,这个变量赋值工作正常:

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; 
    ... 
    } 

?> 

...但是,只是抛出与上面相同的错误。

谁能告诉我这里发生了什么?我在我的智慧结束!

回答

9

变量这里不允许,性质必须由常量在PHP初始化:

[…] this initialization must be a constant value

[Source: php.net manual]

使用构造并初始化正确的值:

class session { 
    var $host; 

    function __construct() { 
     $this->host = $db_creds['host']; 
    } 
} 
+0

啊,明白了。仍然是PHP类和什么新的。谢谢! +1 – neezer

-1
  1. 类名中的第一个字母应该是大写(class Session)

  2. 你写一个构造函数

  3. 类的属性与$这个 - 访问>属性

+0

-1点1是主观的,点2和点3与OP的问题无关。 – 2012-07-23 21:49:38

相关问题