@Farrien
Tell me who

Методы класса выполняются как static почему?

Столкнулся с удивительной проблемой. Есть класс, в котором есть пару методов.

Пример
class Response {
	public function execute() {
		return 'thing';
	}
}


в другом месте удалось вызвать его вот так
Response::execute()
А вот Response->execute() не работает, выдает ошибку.

Создаю $r = new Response, такие же траблы.

Вот так еще оба работают
echo Response::execute();
echo "\n";
# thing
$r = new Response;
echo $r->execute();
# thing

Что это за чертовщина
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Включи вывод всех ошибок и увидишь
Strict standards: Non-static method Response::execute() should not be called statically

Так же как и
$arr = [];
echo $arr['some'];

не приводит к ошибкам, если их отключить
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
Response::execute() - наследие прошлого, не надо так.

$r = new Response;
echo $r->execute();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы