如何将变量值放入Zend_Config_Ini

时间:2012-02-11 14:23:37

标签: php zend-framework

我想将变量的值放入Zend_Config_Ini的实例中。

例如,如果我事先知道这个名字,我可以做点什么,

$config->name = $value;

但是因为我在运行时收到了这个名字,所以我想这样做:

$config->$var = $value;

有可能吗?我试过但它不起作用。这是我的尝试:

update_settings.php

<?php
$name = $_POST['key'];
$new_value = $_POST['new_value'];

if ($name && $value) 
{
    $config = new Zend_Config_Ini('_config/config.ini', null, array('skipExtends' => true, 'allowModifications' => true));

    // EDIT
    $config->$name = $new_value;

    $writer = new Zend_Config_Writer_Ini(array('config' => $config, 'filename' => 'config.ini'));

    $json['success'] = $writer->write()
}
?>

如果有人能够做到,请告诉我如何做。

2 个答案:

答案 0 :(得分:1)

当然有可能(假设我理解你的问题)。我在这里稍微猜测,因为你只是说“它不起作用”,这不是我见过的最好的错误信息。

您必须确保您引用的config.ini文件存在并且您具有正确的路径。这样的事情对你有用: -

$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', null, array('skipExtends' => true, 'allowModifications' => true));
//The previous line doesn't look quite right in your example.
$testVariableName = 'test';
$testVariableValue = 'testing';
$config->$testVariableName = $testVariableValue;
var_dump($config->test);

输出: -

string 'testing' (length=7)

答案 1 :(得分:0)

我建议您使用isset PHP Manual功能。

if (isset( $_POST['id']) && isset($_POST['value']) ) {

$config = new Zend_Config_Ini('../conf/config.ini',null,array('skipExtends' => true,     'allowModifications' => true));
    // EDIT
    $config->$_POST['id'] = $_POST['value'];
.
.
.

如果id&amp; value未设置,您将获得:

Notice: Undefined index: ...