Здравствуйте. В общем, у меня есть классег:
-Выдержка-
class Template_C extends Template_N {
$_cfg = isset($uConfig) ? $uConfig : 'config.cfg';
$_realPath = HOSTROOT.tmpDir.DIRECTORY_SEPARATOR;
public function getCFGfile() {
$fp = fopen($_realPath.$_cfg);
При парсе у меня интерпретатор начинает ругаться:
62 строка - $_cfg = isset($uConfig) ? $uConfig : 'config.cfg';
Почему? Как? Поясните :(
Спустя 10 минут, 24 секунды (8.07.2011 - 19:30) alex12060 написал(а):
Итак, ошибку поборол, добавив модификатор доступа private, но высыпалась другая ошибка -
Цитата |
syntax error, unexpected T_ISSET in /usr/local/www/apache22/data/test.ru/www/model/templates.php on line 62 |
Это вообще выносит
Спустя 5 минут, 52 секунды (8.07.2011 - 19:36) Invis1ble написал(а):
alex12060а потому что такого не должно быть в классах

То есть может быть, но например в конструкторе (или в методе), а не посреди класса
Спустя 3 минуты, 25 секунд (8.07.2011 - 19:39) bulgakov написал(а):
А что за переменная $uConfig откуда она? Если можно полное описание класса.
Спустя 7 секунд (8.07.2011 - 19:39) Invis1ble написал(а):
т.е. как-то так примерно:
class Template_C extends Template_N {
const HOSTROOT = 'path';
const tmpDir = 'tmpdir';
private $_cfg = null;
private $_realPath;
public function __construct($uConfig = null) {
$this->_cfg = $uConfig === null ? $uConfig : 'config.cfg';
$this->_realPath = self::HOSTROOT.self::tmpDir.DIRECTORY_SEPARATOR;
}
public function getCFGfile() {
$fp = fopen($_realPath.$_cfg);
Спустя 5 минут, 40 секунд (8.07.2011 - 19:45) alex12060 написал(а):
Invis1bleТочно, блин, я совсем забыл про конструкторы

Спасибо
Спустя 1 минута, 51 секунда (8.07.2011 - 19:47) Invis1ble написал(а):
alex12060пожалуйста
Спустя 2 дня, 13 часов, 26 минут, 20 секунд (11.07.2011 - 09:13) linker написал(а):
Просто стоит запомнить, что так
$_cfg = isset($uConfig) ? $uConfig : 'config.cfg';
$_realPath = HOSTROOT.tmpDir.DIRECTORY_SEPARATOR;
объявлять свойства класса их их дефолтные значения
нельзя.