Я имею ниже метода в singleton-классе
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 '';
}
}
это хорошо работает как обычная функция
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 '';
}
}
при использовании в классе я добираюсь ниже ошибки:
Предупреждение PHP: array_map (): первым аргументом, '$this-> rfc_encode', должен быть или ПУСТОЙ УКАЗАТЕЛЬ или допустимый обратный вызов
Мог кто-либо помогать мне зафиксировать это.
Из Руководство PHP по обратным вызовам :
Метод созданного объекта передается как массив, содержащий объект с индексом 0 и имя метода с индекс 1.
Попробуйте
return array_map(array($this, 'encode'), $inp);
Освободите единый код из $ this-> кодировать .
> 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 '';
> } }
Надеюсь, что это проясняет проблему.