为什么serialize()在php mysql中的性能很差
我尝试在mysql中存储多个数组。serialize()和unserialize()工作正常,但页面的加载时间显著增加。。。就像很长很糟糕,即使是20-50个对象的小数组 有没有办法避免这种情况 我的问题是我有一个很长的函数代码,但不记得代码后面的数组: 例如为什么serialize()在php mysql中的性能很差,php,mysql,arrays,Php,Mysql,Arrays,我尝试在mysql中存储多个数组。serialize()和unserialize()工作正常,但页面的加载时间显著增加。。。就像很长很糟糕,即使是20-50个对象的小数组 有没有办法避免这种情况 我的问题是我有一个很长的函数代码,但不记得代码后面的数组: 例如 function { // There is very long code here with foreach, loop and all that crap. // Working and displaying arra
function {
// There is very long code here with foreach, loop and all that crap.
// Working and displaying array
$finalarray = ($array["stuff"]);
print_r($finalarray);
}
// Here after function the variable is forgotten and print_r($finalarray) dont work anymore
为什么变量在函数之后是未设置的,因为这就是为什么我首先要将它存储在mysql中,也许我可以通过记住数组来避免这种情况
我没有把所有的代码,因为它是巨大的,但如果你需要更多关于我的问题的信息,请告诉我
谢谢 您所问的是“可变可视范围”。 在PHP中,如果在函数中定义变量,则函数结束后该变量将不可见 要使您创建的变量在函数执行后可供外部代码访问,必须将其声明为全局变量,如下所示:
function f()
{
global $finalarray;
...
$finalarray = ......;
}
f();
print_r($finalarray);
另一种方法是使函数返回数组。像这样:
function f()
{
$finalarray = ......; // local variable
return $finalarray; // return by value
}
$finalarray = f(); // becomes a global variable
print_r($finalarray);
您所问的是“可变可见性范围”。
在PHP中,如果在函数中定义变量,则函数结束后该变量将不可见
要使您创建的变量在函数执行后可供外部代码访问,必须将其声明为全局变量,如下所示:
function f()
{
global $finalarray;
...
$finalarray = ......;
}
f();
print_r($finalarray);
另一种方法是使函数返回数组。像这样:
function f()
{
$finalarray = ......; // local variable
return $finalarray; // return by value
}
$finalarray = f(); // becomes a global variable
print_r($finalarray);
$finalarray
是在赋值之前定义的吗?谢谢你的回复,我真的不知道$finalarray在函数中输出了一个非常好的数组,但是在函数之外它被遗忘了。我需要在我的页面顶部的功能,不能重复它两次,因为错误。我真的需要找到一种方法1-将其存储在mysql中或2-记住变量中的数组以备以后在html中使用。我尝试使用serialize将其存储在mysql中,但性能很差我想在mysql表中创建200个colonum并逐个添加它们,但这是个糟糕的主意,因为有时数组中有1000个对象:)因为我在同一页中使用了相同的变量,将其存储在mysqlis中可能完全没有用在赋值之前定义的$finalarray
?感谢您的回复,我真的不知道$finalarray在函数中输出了非常好的数组,但在函数之外它被遗忘了。我需要在我的页面顶部的功能,不能重复它两次,因为错误。我真的需要找到一种方法1-将其存储在mysql中或2-记住变量中的数组以备以后在html中使用。我尝试使用serialize将其存储在mysql中,但性能很差我想在mysql表中创建200个colonum并逐个添加它们,但这是个糟糕的主意,因为有时数组中有1000个对象:)因为我在同一个页面中使用同一个变量,将它存储在mysql中可能完全没有用