将所有会话值转换为字符串

时间:2012-01-03 08:13:14

标签: php session

嗨我的项目中有很多会话值,我使用会话的syntext是

$_SESSION['username'] = $somevalue;

这个东西是在大约2000页的可能页面中实现的。现在我想把这个东西换成

$_SESSION['username'] = (string)$somevalue

同时在所有页面中。我怎么能在梦中做到这一点。请帮我。我的页面中使用了许多不同的会话值。

有没有办法将所有会话值同时转换为字符串。 我的意思是像$ _SESSION [] =(字符串)这样的正则表达式方法。或任何其他方法。请告诉我。

感谢。

3 个答案:

答案 0 :(得分:1)

array_map函数可能就是你要找的东西:

$_SESSION = array_map(function($item) { return (string)$item; }, $_SESSION);

匿名函数需要PHP 5.3,在早期版本中,您必须将函数名称作为第一个参数传递。

答案 1 :(得分:1)

这取决于您拥有的PHP版本。对于> = 5.3,使用Peter的版本,对于< 5.3,使用

function stringify($item)
{
    return (string)$item;
}

$_SESSION = array_map('stringify', $_SESSION);

答案 2 :(得分:0)

以防万一你需要在你的2000代码文件中 而不是在脚本中转换运行时的值:不知道Dreamweaver是否支持正则表达式搜索和替换以及反向引用字符是什么。但请尝试替换此

\$_SESSION\['[^']+'\]\s*=\s*

用这个:

$0(string)

$0是匹配模式的反向引用。如果这不起作用,请尝试\0\\0