为drupal开发模块,我需要在函数中传递/修改变量。我避免使用全局变量,因为drupal使用包含函数,随后将我的全局变量变为本地变量。PHP和DRUPAL,无法将值保存在静态变量中并通过函数
因此,我创建了下面的脚本,它存储了一个静态变量,但我不能保留新的值。任何帮助将不胜感激
function _example_set_flashurl($value = '21224', $clear = NULL) {
static $url;
if ($clear) {
// reset url variable back to default
$url = null;
}
// assigned url a perminate value within this function
$url = $value;
return $url;
}
function _example_get_flashurl() {
return _example_set_flashurl();
// retrieve the value inside set scope
}
_example_set_flashurl('another', TRUE);
print _example_get_flashurl(); // prints 21224, I want it to print another
感谢,所有的解决方案都工作正常。 BUt只有在我将变量传递到“相同页面”时才起作用。我的意思是在相同页面加载的两个不同函数之间设置和获取变量。但我通过ajax请求传递这些变量,当我打印变量 - $ url。它打印21224. – amedjones 2011-03-17 19:17:08
我只设法通过variable_set和variable_get得到这个工作。但是这是一个性能问题,因为每次使用variable_Set时都会清除表。任何其他建议?全球也不工作,它吐出默认值 – amedjones 2011-03-17 19:18:22
这是设计。 PHP是无状态的,请求之间没有任何共享。如果它是用户特定的,则可以将其保存在$ _SESSION中。是的,variable_get/set的意思是“一次写入(多或少)/经常读”的东西。 – Berdir 2011-03-17 19:20:52