VARIABLE,期待T

我期待这是一个我忽略的基本语法错误,但我无法弄清楚。

在PHP脚本中,我不断收到以下错误。

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in [path]/scripts/users/database_connection.php on line 4

发生这种情况时,我的脚本连接到数据库与include_once()调用。 我将脚本剥离为最基本的代码(留下了其他代码所要求的代码),并且仍然调用此错误。

<?php
    class UserDatabaseConnection
    {
        $connection = sqlite_open("[path]/data/users.sqlite", 0666);
        public function lookupUser($username)
        {
            // rest of my code...
        }
    }

    $udb = new UserDatabaseConnection;
?>

我一直苦苦挣扎,只是想知道是否有其他人能找到我出错的地方。


你不能放

$connection = sqlite_open("[path]/data/users.sqlite", 0666);

课外建设。 您必须将该行放入函数或构造函数中,但不能将其放在现在的位置。


您不能在类构造中使用函数调用,您应该在构造函数中初始化该值。

从类属性的PHP手册:

这个声明可能包括一个初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖运行时信息来进行评估。

工作代码示例:

<?php
    class UserDatabaseConnection
    {
        public $connection;
        public function __construct()
        {
            $this->connection = sqlite_open("[path]/data/users.sqlite", 0666);
        }
        public function lookupUser($username)
        {
            // rest of my code...
            // example usage (procedural way):
            $query = sqlite_exec($this->connection, "SELECT ...", $error);
            // object oriented way:
            $query = $this->connection->queryExec("SELECT ...", $error);
        }
    }

    $udb = new UserDatabaseConnection;
?>

根据您的需要, protectedprivate可能是$connection的更好选择。 这可以防止您意外关闭或混淆连接。


在成员定义之前使用访问修饰符:

    private $connection;

由于您不能在PHP的成员定义中使用函数调用,因此请在构造函数中进行:

 public function __construct() {
      $this->connection = sqlite_open("[path]/data/users.sqlite", 0666);
 }
链接地址: http://www.djcxy.com/p/9959.html

上一篇: VARIABLE, expecting T

下一篇: VARIABLE in PHP?