意外的T_VARIABLE错误

时间:2009-11-07 20:51:57

标签: php include variables

好的,我知道这是一个很常见的问题,但到目前为止我发现的所有解决方案都涉及缺少分号或大括号,我知道这两种情况都不适用于我。

我有一个使用此变量赋值FINE的类:

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

?>

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

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

2 个答案:

答案 0 :(得分:9)

此处不允许使用变量,属性必须由PHP中的常量初始化:

  

[...]此初始化必须是常量值

[Source: php.net manual]

使用构造函数正确初始化值:

class session {
    var $host;

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

答案 1 :(得分:-1)

  1. 类名中的第一个字母应为大写(类Session)

  2. 你写了一个构造函数

  3. 使用$ this-&gt; property

    访问
  4. 类属性