Код (PHP): $db = new mysqli("localhost", "user","password,"dbase"); $a="То что написал user"; class Checker { private function checkString($variable) { $variable = $db->real_escape_string($variable); return $variable; } } echo Checker::checkString($a) Ошибка Fatal error: Call to a member function real_escape_string() on a non-object in /www/function.php on line 6015 Как исправить $db->real_escape_string Добавлено спустя 12 минут 36 секунд: Нашел ответ сам. Оптимально? Код (PHP): $db = new mysqli("localhost", "user","password,"dbase"); $a="То что написал user"; class Checker { private function checkString($variable) { [b]global $db;[/b]//<--- $variable = $db->real_escape_string($variable); return $variable; } } echo Checker::checkString($a)
Всё не так ) 1. Нельзя вызывать так метод не объявленный как static 2. Нельзя вообще вызывать извне приватные методы. Они приватны. 3. Что бы увидеть один объект внутри другого, нужно его передать. 4. global тоже нельзя ) http://php.ru/manual/language.oop5.html з.ы. но стремление похвально. Прочтите доки и все станет понятно.
Признаюсь- код обрезан- там есть промежуточный метод вызывающий метод который я привел. Мануал- читаю, но все сразу не схватишь 1. В оригинале объявлено нормально- неправильно обрезал для форума 2. Скорее всего тоже самое 3,4. А как? Так что ли (вылгядит неочень) Код (PHP): $db = new mysqli("localhost", "user","password,"dbase"); $a="То что написал user"; class Checker extends mysqli //<-- { private function checkString($variable) { $variable = $db->real_escape_string($variable); return $variable; } } echo Checker::checkString($a)