Я искал всюду для этого вопроса, но не смог получить ответ. Я пытаюсь вызвать другую функцию класса в другой. Моя цель - иметь глобальный класс, который обрабатывает сообщения. Я хочу иметь возможность добавлять сообщения внутри других классов. Это мой пример, с которым я работаю.Вызов другой функции класса внутри другого класса
class Site {
var $message;
public function setMessage($string) {
$this->message .= $string;
}
public function outputMessage($string) {
echo $this->message;
}
}
И мой другой класс
class Company {
var $name;
public function setName($string) {
$this->name.= $string;
// TESTING HERE
Site::setMessage("Company Set: " .$string);
}
}
Тогда у меня есть главная страница
$Site = new Site();
$Site->addMessage("Start");
$Company = new Company();
$Company->addName('Company X');
$Site->outputMessage();
Я пытаюсь получить мой экран, чтобы сказать "Пуск компании Set: Компания X". Таким образом, сайт может хранить любые сообщения, которые должен хранить любой класс.
Я попытался превратить функцию в статическую без везения. Независимо от того, что я пытаюсь, я получаю какую-то ошибку.
Для примера:
Фатальная ошибка: Доступ к необъявленной статического свойства: Компания :: $ имя
Фатальная ошибка: Использование $ это, когда не в контексте объекта
Может кто-нибудь мне точку в правильном направлении ?
Прежде всего - в классе 'Site' нет метода' addMessage'. Как 'addName' в' Company'. Второй - как метод, называемый статически - нет 'this', –
Если вы хотите вызвать метод из другого класса, вам нужно включить этот класс, прежде чем пытаться его вызвать. Кроме того, убедитесь, что метод, который вы вызываете, является 'public'. – aphextwix
К сожалению, это должно быть setMessage. Я редактировал вопрос, чтобы показать правильную функцию. Я попытался изменить setCompany на статическую функцию и использовать Адрес :: company = $ string; Но я получаю еще одну ошибку: Неустранимая ошибка: доступ к необъявленному статическому свойству: Company :: $ name. Также в настоящее время эти классы находятся в одном файле. Я не думаю, что мне нужно что-то включить. – user1860996