PHP:脚本显示解析语法错误

时间:2014-11-12 04:00:58

标签: php singleton

我发现了一个我无法找到解决方案的问题。我正在使用返回单个静态PDO对象的单例类/方法。当我尝试声明对象的静态引用(http://i.imgur.com/EhKZuVH.png)时,我得到http://i.imgur.com/jUPMQrO.png。我该如何解决这个问题?

游戏类:

<?php

    include_once('functions.php');
    include_once('database.php');

    $_codeRegex = '^([a-zA-Z0-9]{4,7})$';

    class Game
    {
        public $Id = "";
        public $Name = "";

        private static $connection = Database::Connect();

        public function __construct($id, $name)
        {
            $this->Id = $id;
            $this->Name = $name;
        }
    }

?>

我的单身人士课程:

<?php

    require_once('config.php');

    CONST CONNECTION_FORMAT = 'mysql:host=%1$s;dbname=%2$s;charset=utf8';

    class Database 
    {
        private static $cont = null;

        public function __construct() {
            exit('Initialize function is not excessible.');
        }

        public static function Connect()
        {
            if (self::$cont == null)
            {      
                try 
                {
                    $pdoConstuct = sprintf(CONNECTION_FORMAT, DB_SERVER, DB_NAME);
                    self::$cont = new PDO($pdoConstuct, DB_USER, DB_PASS);
                    self::$cont->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
                }
                catch(PDOException $e) { return false; }
            }

            return self::$cont;
        }

        public static function Disconnect()
        {
            self::$cont = null;
        }
    }

?>

1 个答案:

答案 0 :(得分:0)

PHP不是Java,你可以在这里定义属性值。

您可以在此处执行的操作只是将属性初始化放入contructor,如下所示:

    private static $connection;

    public function __construct($id, $name)
    {
        $this->Id = $id;
        $this->Name = $name;
        self::$connection = Database::Connect();
    }

在PHP中定义类属性时,无法将其默认值设置为类的实例。