[PHP-users 35659] unexpected T_STRING, expecting T_VARIABLEについて
dvorak
nekorurir2 @ gmail.com
2012年 2月 5日 (日) 08:39:45 JST
里村と申します。
Codezineに掲載されているPDOのクラスを元にpostgresqlへ接続するクラスを作っているのですが、
どうも下記コードで掲題のパースエラーが発生してしまいます。あれこれドキュメントを見てみたのですがどこがエラーなのかわからず、途方にくれております。
初歩的なミスのような気がするのですが、助言いただけないでしょうか。
コードは下記のとおりです。
php -l pdo.phpとして実行すると、
"PHP Parse error: syntax error, unexpected T_STRING, expecting
T_VARIABLE in cz_pdo.php on line 21
Errors parsing cz_pdo.php"
というエラーが起きます。
21行目というと private static initDb(PDO $pdo){ の部分なのですが、何を見落としているのか見当がつきません。
環境はScientific Linux 5.7 / PHP5.3.3です。
<?php
class PDO {
private static $user = "foo";
private static $password = "bar";
private static $dbname = "mydb";
private static $port = "5432";
private static $host = "192.0.2.1";
private static $dsn = "pgsql:";
private static $options = array(
PDO::ATTR_PERSISTENT => true,
);
public static function getConnection(){
$pdo = new PDO("self::$dsn host=self::$host;
dbname=self::$dbname; port=self::$self", self::$user, self::$password,
self::$options);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::initDb($pdo);
return $pdo;
}
private static initDb(PDO $pdo){
try {
$pdo->exec(file_get_contents(dirname(__FILE__) . "/db-schema.sql"));
} catch (PDOException $e) {
var_dump($e->getMessage());
}
}
}
?>
PHP-users メーリングリストの案内