[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 メーリングリストの案内