Недавно я создал класс в 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/");
Любая помощь будет оценена благодаря вам
Ваши переменные в функции getRoomname()
не будут правильно адресованы. Ваш синтаксис предполагает, что переменные объявляются внутри функции или передаются при вызове функции (которой они не являются).
Чтобы сделать это внутри класса, сделайте это, используя $this->
, например:
function getRoomName($roomlink)
{
echo str_replace($this->words,$this->replace,$roomlink);
}
Для получения дополнительной информации, пожалуйста, ознакомьтесь с этой страницей руководства.
Возможно, из-за версии или чего-то еще, когда я проверил ваш точный код, я получил 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);
$this->words
....?echo str_replace($this->words,$this->replace,$roomlink);