Неопределенная переменная в классе

1

Недавно я создал класс в PHP. Я пытаюсь объявить переменную в классе и использовать str_replace в функции, но ее неопределенная переменная show

class Status{
  $words = array(".com",".net",".co.uk",".tk","co.cc");
  $replace = " ";
  function getRoomName($roomlink)
    {
      echo str_replace($words,$replace,$roomlink);

    }
}
$status = new Status;
echo $status->getRoomName("http://darsekarbala.com/azadari/");

Любая помощь будет оценена благодаря вам

  • 1
    $this->words ....?
  • 0
    echo str_replace($this->words,$this->replace,$roomlink);
Показать ещё 1 комментарий
Теги:
class
variables

2 ответа

1

Ваши переменные в функции getRoomname() не будут правильно адресованы. Ваш синтаксис предполагает, что переменные объявляются внутри функции или передаются при вызове функции (которой они не являются).

Чтобы сделать это внутри класса, сделайте это, используя $this->, например:

function getRoomName($roomlink)
{
    echo str_replace($this->words,$this->replace,$roomlink);
}

Для получения дополнительной информации, пожалуйста, ознакомьтесь с этой страницей руководства.

0

Возможно, из-за версии или чего-то еще, когда я проверил ваш точный код, я получил syntax error, unexpected '$words' (T_VARIABLE), expecting function (T_FUNCTION), поэтому установка переменных в private или public должна исправить это.

Что undefined varible, вы должны использовать $this-> для доступа к ним из своего класса. Взглянуть:

class Status{
    private $words = array(".com",".net",".co.uk",".tk","co.cc"); // changed
    private $replace = " "; // changed
    function getRoomName($roomlink){
        echo str_replace($this->words, $this->replace, $roomlink); // changed
    }
}
$status = new Status;
echo $status->getRoomName("http://darsekarbala.com/azadari/");

Кроме того, поскольку getRoomName ничего не возвращает, повторение его не делает многого. Вы могли бы просто:
$status->getRoomName("http://darsekarbala.com/azadari/"); ,
или изменить на:
return str_replace($this->words, $this->replace, $roomlink);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню