Да, как ранее указывал aynber, вы не можете передать $ this как параметр функции. Поступая так, вы в основном делаете это заново. Вы должны просто удалить его как параметр функции.
я есть следующий метод PHP, который является частью кодовой базы, которая работала нормально:
<?php
class HooksTest extends DrupalTestCase {
public function testPageAlterIsLoggedIn() {
$this->drupal->shouldReceive('userIsLoggedIn')
->once()
->andReturn(TRUE);
$this->drupal->shouldReceive('drupalPageIsCacheable')
->once()
->andReturnUsing(function ($this) {
return $this;
});
$page = [];
$cacheable = $this->object->pageAlter($page);
$this->assertFalse($cacheable);
}
}
Код проходил все тесты CI раньше (используяphpunit
).
Однако теперь, когда я вызываю файл черезphp HooksTest.php
Я получил следующую ошибку:
Неустранимая ошибка PHP: невозможно использовать$this
в качестве параметра вHooksTest.php
на линии 11
Неустранимая ошибка: невозможно использовать$this
в качестве параметра вHooksTest.php
на линии 11
Я тестировал с PHP 7.1, 7.2 и той же проблемой. Я считаю, что это работает в PHP 5.6.
Как я могу преобразовать приведенный выше код, чтобы иметь то же значение?
Делает удаление$this
из параметра функции должно хватить?