.php t=,关于php:意外的T_VARIABLE,期望T_FUNCTION
我期望這是我忽略的基本語法錯誤,但我無法弄清楚。
在PHP腳本中,我不斷收到以下錯誤。
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in [path]/scripts/users/database_connection.php on line 4
當用include_once()調用我連接數據庫的腳本時,會發生這種情況。 我將腳本剝離為最基本的代碼(保留了其他代碼所需的內容),但它仍在調用此錯誤。
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);
課外建設。 您必須將該行放在函數或構造函數中,但不能將其放在現在的位置。
謝謝,我第一次嘗試使用OOP。
@犀牛,沒事。 @Lekensteyn做得非常出色,并向您展示了理想情況下應該如何做。
因術語function和method的混合而被低估,并且無法在類構造函數之外進行預設分配。
您不能在類構造中使用函數調用,應該在構造函數中初始化該值。
從有關類屬性的PHP手冊中:
This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.
工作代碼示例:
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;
?>
根據您的需求,protected或private對于$connection可能是更好的選擇。 這樣可以防止您意外關閉或弄亂連接。
在成員定義之前使用訪問修飾符:
private $connection;
由于您無法在PHP的成員定義中使用函數調用,因此請在構造函數中進行操作:
public function __construct() {
$this->connection = sqlite_open("[path]/data/users.sqlite", 0666);
}
好的代碼示例,不錯,也很小。
在$ connection之前放置public,protected或private。
總結
以上是生活随笔為你收集整理的.php t=,关于php:意外的T_VARIABLE,期望T_FUNCTION的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《游戏视频主播手册》——2.2 哪些人适
- 下一篇: gdb 收到SIGPIPE信号