Да, как ранее указывал 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 из параметра функции должно хватить?

Ответы на вопрос(3)

Ваш ответ на вопрос