singleton — PHP: скрипт, показывающий синтаксическую ошибку синтаксического анализа

Я нашел проблему, которую я не могу найти решение. Я использую одноэлементный класс / метод, который возвращает один статический объект 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

Решение

PHP — это не Java, где вы можете определять значения свойств следующим образом.

Что вы можете сделать здесь, это просто поместить инициализацию свойства в contructor, как это:

    private static $connection;

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

Когда вы определяете свойство класса в PHP, вы не можете установить его значение по умолчанию к экземпляру класса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]