【发布时间】:2017-09-20 07:54:27
【问题描述】:
我需要帮助解决困扰我好几天的问题。这可能是一个显而易见的答案,并且之前可能已经回答过。作为先决条件,我做了很多谷歌搜索和堆栈爬行,但无济于事。老实说,我不确定问题是什么。非常感谢任何帮助,并希望在我的特殊情况下拯救其他人过早秃顶。所以废话不多说,代码如下:
代码 - db.php
class Database {
private function host() {
return 'localhost:3306';
}
private function user() { // line 8 is here
return "root";
}
private function password() {
return "";
}
private function dbname() {
return "stonelabs";
}
private $dbh;
private $error;
public function __construct() {
$dsn = 'mysql:host=' . $this->host() . ';dbname=' . $this->dbname();
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
try{
$this->dbh = new PDO($dsn, $this->user(), $this->password(), $options);
return true;
}
catch(PDOException $e){
$this->error = $e->getMessage();
return false;
}
}
}
这是我收到的错误:
错误 - 在浏览器中
解析错误:语法错误、意外的“私有”(T_STRING)、期望函数 (T_FUNCTION) 在 /storage/emulated/0/var/www/Stone Info Labs/test/core/core/helpers/db.php 上第 8 行
我正在尝试做一个简单的 PDO 数据库类,之前做过很多次,根本行不通。索引文件中需要这个类文件(只有 4 行,打开 php 括号和 3 行需要行,所有这些都工作到这个阶段)。我正在 Android 6.0.1 上开发和运行,再次使用 servers Ultimate pro 提供的 lighttpd 服务器,在此之前所有这些都可以正常工作,包括以前的网站。
编辑
我使用的是 php 5.5 版
另一个编辑
我将 $this->pass() 更改为 $this->password() 时出现相同的错误。以上代码已更新
【问题讨论】:
-
请在代码中注明哪一行是第 8 行,并在该行注释。
-
你的php是什么版本?这适用于最新的 PHP 7:eval.in/781277
-
似乎是 PHP v.4.x(:在旧的 PHP 版本中没有
private, public, protected访问器 -
我认为有一些隐藏的符号:见
' private'中的空格 -
去年一个流氓程序实际上炸毁了我的旧 Linux 机器,从那以后我一直在使用我的 Android,代码质量没有差异,可读性/可打字性几乎没有差异