Question: I have an array and want to apply `MySQLi->real_escape_string` on every member of the array through `array_walk` but this is not working:

```
array_walk($array, '$mysqli->real_escape_string');

```

It gives this error:

> 
> Warning: array\_walk() expects parameter 2 to be a valid callback, function '$mysqli->real\_escape\_string' not found or invalid function name in C:\wamp\www\ts.php on line 69
> 
> 
> 

`$mysqli` is a valid object and works fine if I do `$mysqli->real_escape_string('anything')` on anything else.

**My Question:** Is it not possible to pass object's functions as callback ? Or am I doing something wrong.

---

**IMPORTANT:** I know I can create my own callback function and implement $mysqli->real\_escape\_string in it *BUT* I want to know is it not possible to use callback as an object's function ?

Answer: 
As you can read on [php callback](http://php.net/manual/en/language.pseudo-types.php) page, you shall use:

```
# produces an error
array_walk($array, array($msqli, 'real_escape_string'));
array_map($array, array($msqli, 'real_escape_string'));

```
If your calling a method within an object you should pass in an array, first item being the object / context and then second should be the method:

Small example

```
function callback()
{
   //blah
}

```

the above is called a function and should be called like so: `array_walk($array, 'callback');`

```
class object()
{
    public function callback()
    {
    }
}

```

the above callback is called a method, its practically the same as a function but because its within a class it has a parent context, so should be called like so:

```
$object = new object();
array_walk($array, array($object , 'callback'));

```

MySQLi is an object orientated library so after you have initialized your mysqli object you should call the "method" like so:

```
array_walk($array, array($msqli, 'real_escape_string'));

```

Also as mentioned above, `array_walk` will walk both key and value into the mysql object witch will cause in exact escaping, you should use `array_map` to walk the values alone:

`array_map($array, array($msqli, 'real_escape_string'));`