由于某些原因,我们的托管公司使用
PHP 5.2,甚至没有预安装MysqLi和PDO.
我别无选择,只能重写我的代码的一部分,使其兼容.
所以,这是我的问题:
在PHP 5.2中匿名函数不支持,所以我做了以下测试,以确保我正确地更改代码:
@H_403_7@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();但上面会给我的:
@H_403_7@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 ....什么是正确的方法:
@H_403_7@array_map('mapKeyValue',$arr2);在班级内
PS:由于使用PHP 5.2,更换主机公司是否有足够的理由(我有约7个月左右的合同)
使用$this和数组作为回调:
@H_403_7@array_map( array( $this,'mapKeyValue'),$arr2);
而且,只要确定,这是tested with PHP 5.2.17,并确认工作.