Как с помощью метода задать значение переменной в скрипте php? Есть класс:class Comment
{
public $name = "Name";

public function getName() {
return $this->name;
}

public function setName($var) {
$this->name = sanitize($var);
}
public function sanitize($str) {
$str = trim($str);
$str = nl2br($str);
return $str;
}
Если после создания класса задать значение переменной $name напрямую:
$comment = new Comment();
$comment->name = "Bla bla bla";
то все ок.
Если же пытаюсь использовать метод:
$comment->setName('bla bla bla');
ничего не выходит.
Я могу, конечно, забить и идти дальше, но честно говоря, хочу понять, почему такое может быть.
Можете подсказать?
Добавил:
Если метод упростить, то все ок:public function setName($var) {
$this->name = $var;
}
Так работает. Не понимаю, почему не работает с функцией sanitize?

21 Авг 2019 в 07:07
163 +1
0
Ответы
1

Проблема здесь скорее всего заключается в том, что вы пытаетесь вызвать функцию sanitize() внутри метода setName(), но не объявили эту функцию внутри класса. Функция sanitize() должна быть также методом класса Comment, чтобы была доступна изнутри класса. Вот как можно исправить ваш класс:

class Comment
{
public $name = "Name";
public function getName() {
return $this->name;
}
public function setName($var) {
$this->name = $this->sanitize($var);
}
public function sanitize($str) {
$str = trim($str);
$str = nl2br($str);
return $str;
}
}
$comment = new Comment();
$comment->setName('bla bla bla');
echo $comment->getName();

Теперь при вызове метода setName() значение переменной name будет фильтроваться с помощью метода sanitize().

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 654 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир