I have the below method in a singleton class
private function encode($inp)
{
if (is_array($inp) {
return array_map('$this->encode', $inp);
} else if is_scalar($inp) {
return str_replace('%7E', rawurlencode($inp));
} else {
return '';
}
}
this works fine as an ordinary function
function encode($inp)
{
if (is_array($inp) {
return array_map('encode', $inp);
} else if is_scalar($inp) {
return str_replace('%7E', rawurlencode($inp));
} else {
return '';
}
}
when using inside a class i'm getting the below error:
PHP Warning: array_map(): The first argument, 开发者_高级运维'$this->rfc_encode', should be either NULL or a valid callback
Please could anybody help me to fix this.
From PHP Manual on Callbacks:
A method of an instantiated object is passed as an array containing an object at index 0 and the method name at index 1.
So try
return array_map(array($this, 'encode'), $inp);
Release the single code from $this->encode.
> private function encode($inp) {
> if (is_array($inp) {
> return array_map($this->encode, $inp);
> } else if is_scalar($inp) {
> return str_replace('%7E', rawurlencode($inp));
> } else {
> return '';
> } }
Hope that clears the issue.
精彩评论