Вызвать функцию или метод из своего класса

Я написал класс базы данных, но не могу получить доступ к методу изнутри:

class database{ . . private $mgc; private $real; public function insert($table,$values,$row = null){ . . for($i = 0; $i < count($values); $i++){ $values[$i] = safe_value ($values[$i]); } . . } public function safe_value( $value ) { if( $this->real ) { if( $this->mgc ) { $value = stripslashes( $value ); } $value = mysql_real_escape_string( $value ); } else { if( !$this->mgc ) { $value = addslashes( $value ); } } return $value; } } 

При запуске этого класса у меня есть эта ошибка:

Неустранимая ошибка: вызов неопределенной функции safe_value ()

Когда я использовал mysql_real_escape_string вместо метода safe_value класс отлично работает. Почему я не могу получить доступ к функции safe_value и почему она показывает мне эту ошибку?

При вызове нестатической функции-члена из класса вам нужно ссылаться на него с помощью $this , в этом конкретном случае вы должны называть его как

 $values[$i] = $this->safe_value($values[$i]); 

Вам нужно изменить вызов на $values[$i] = $this->safe_value($values[$i]); для нестатических методов. Для статических методов используйте $values[$i] = database::safe_value($values[$i]) .