PHP, синтаксическая ошибка

Рейтинг: -2Ответов: 2Опубликовано: 06.04.2011

Есть такой код:

var $createdatabase = 'CREATE DATABASE IF NOT EXISTS '.$this->sql_database;

$this->sql_database - переменная наследуемая из дочернего класса. Ругается на точку. Если поставить кавычки:

var $createdatabase = "CREATE DATABASE IF NOT EXISTS $this->sql_database";

Начинает ругаться на первую кавычку, что не так?

Ответы

▲ 2

Ну правильно ругается. Родитель и не должен видеть что-либо в дочернем классе. Чтобы убрать ошибку, надо определить переменную sql_database в родительском классе, но изменение значения в дочернем классе не повлечет изменения значения переменной в родительском классе.

▲ 2

Короче говоря, ling прав, объявите переменную в текущем классе, либо обращайтесь к ней соответственно:

\ClassName::getSqlDatabase();

или:

$ClassLink->sql_database;

$ClassLink - можно притащить с собой как параметр функции, а можно, например, через global:

global $ClassLink;

$ClassLink->...

И будет вам счастье :)

UPD: Совсем забыл про parent :) Это еще один вариант, но конкретно сказать сложно - нужно видеть структуру :)

parent::...