php用了两个this,PHP致命错误:不能使用$this作为参数

我有以下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 Fatal error: Cannot use $this as parameter in HooksTest.php on line 11

Fatal error: Cannot use $this as parameter in HooksTest.php on line 11

我已经使用PHP 7.1,7.2和同样的问题进行了测试.我相信它在PHP 5.6中运行.

如何将上面的代码转换为具有相同的含义?

从函数参数中删除$this应该足够吗?

解决方法:

只要跳过$this这个论点,就改变吧

function ($this) {

return $this;

}

function () {

return $this;

}

查看示例#5在Anonymous functions页面上自动绑定$this:

class Test

{

public function testing()

{

return function() {

var_dump($this);

};

}

}

$object = new Test;

$function = $object->testing();

$function();

?>

标签:fatal-error,php,this

来源: https://codeday.me/bug/20190929/1832183.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值