for some reasons, our hosting company used PHP 5.2 and doesn't even have mysqli and PDO pre-installed.
I have no choice but to rewrite some part of my code to make it 5.2 compatible.
so, here is my question:
In PHP 5.2 Anonymous function is not supported, so i did the following test to make sure I'm changing the code correctly:
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();
but the above would give me :
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 ....
what is the correct way to do :
array_map('mapKeyValue', $arr, $arr2);
within a class?
PS: Is it a good enough reason to change hosting company because they use PHP 5.2?(i got a contract with about 7 month left)
Use
$this
and an array as the callback:And, just to be sure, this is tested with PHP 5.2.17 and is confirmed working.
Make sure your that callback method is public.
Try using :
You need to call the function using $this.