我想将变量的值放入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()
}
?>
如果有人能够做到,请告诉我如何做。
答案 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: ...