Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> $this->$key по человечески, как сделать без ошибки $this->$key 
:(
    Опции темы
Digit
Дата 25.8.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.7.2005

Репутация: нет
Всего: нет



Чтобы было понятнее сразу код
Код

$props = array("name"=>"text", "mag"=>"int");
...
foreach ($this->props as $key => $value){
            $text .= "public \$$key = '$this->$key';";
        }
...
file_put_contents($this->savePath . $this->iName . ".php", $text);


ошибка происходит здесь: '$this->$key'
текст ошибки: Catchable fatal error: Object of class ХХХ could not be converted to string

Задача: сгененерировать PHP код, который будет записан в другой PHP  файл, при этом имеется массив $props где хранится имя и тип переменной, сами же переменные с этими именами сужествуют, нужно вместо  '$this->$key' подпихнуть значение переменной, имя которой находится в переменной $key

Надеюсь хоть что то из написанного понятно...
PM MAIL ICQ   Вверх
NewDima
Дата 25.8.2009, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



С объяснением явные проблемы. По тому, что я понял из вышесказанного, тогда что-то такое:
Код

<?php
class configSaver {
    protected $_saveName = '';

    protected $_options = array('_a'=>'', '_b'=>'');

    protected $_a;
    protected $_b;

    public function setSaveName($name) {
        if (is_string($name)) $this->_saveName = $name;
    }

    public function save($name = '') {
        if ($name != '') $this->setSaveName($name);
        if (!is_resource($file = @fopen($this->_saveName, 'wt'))) throw new exception('Invalid file path');
        fwrite($file, "class Config {\n");
        foreach ($this->_options as $name => $value) {
            fwrite($file, "    public static $".$name." = ".var_export($this->$name, true).";\n");
        }
        fwrite($file, "}");
        fclose($file);
    }

    public function setA($value) {
        $this->_a = $value;
    }

    public function setB($value) {
        $this->_b = $value;
    }
}

$con = new configSaver();
$con->setA(1);
$con->setB('var');
$con->save('./config.php');
?>

Как я понял, тебе требуется сохранение состояния класса?
В таком случае рули в сторону __set_state
PM ICQ   Вверх
IZ@TOP
Дата 25.8.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73





--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.