【发布时间】:2012-08-24 03:48:43
【问题描述】:
由于某些原因,我们的托管公司使用 PHP 5.2,甚至没有预装 mysqli 和 PDO。
我别无选择,只能重写部分代码以使其与 5.2 兼容。
所以,这是我的问题:
在 PHP 5.2 中不支持匿名函数,因此我进行了以下测试以确保我正确更改了代码:
class foo{
public function toString(){
$arr = array("a", "b");
$arr2 = array("c", "d");
print_r(array_map('mapKeyValue', $arr, $arr2));
}
private function mapKeyValue($v, $k){
return $k."='".$v."'";
}
}
$foo = new foo();
echo $foo->toString();
但上面会给我:
Warning: array_map() expects parameter 1 to be a valid callback, function 'mapKeyValue' not found or invalid function name in ....
PHP Warning: array_map() expects parameter 1 to be a valid callback, function 'mapKeyValue' not found or invalid function name in ....
正确的做法是什么:
array_map('mapKeyValue', $arr, $arr2);
在一个班级内?
PS:因为他们使用 PHP 5.2 而更换托管公司是否是一个足够好的理由?(我得到了大约 7 个月的合同)
【问题讨论】:
-
“我别无选择,只能重写部分代码以使其与 5.2 兼容。”或者获取一个默认不安全的新主机。
-
告诉您的主机您想要升级 PHP,有时他们会这样做。
-
他们实际上拒绝说:'5.2 更好地支持其他客户端,因为它的“标准不那么严格”比 5.3'