mb_detect_encoding $ PHP中的这个上下文错误

时间:2016-07-21 08:07:17

标签: php

我最近在5.3服务器上遇到了一个不寻常的问题(是的它已经过时了,但是我不应该更新它)。 string sitem = ""; sitem = listbox1.SelectedItem.ToString(); listbox2.SelectedItem = sitem 中的$this->encodings部分导致了致命错误:

  

"当不在对象上下文中时使用$ this"

当我尝试时它在5.5上工作正常 - 出于什么原因它会在旧版本的PHP中失败?是mb_detect_encoding回调会破坏它吗?

array_map

1 个答案:

答案 0 :(得分:2)

这在PHP手册中有描述:

Version Description
5.4.0   $this can be used in anonymous functions.

Anonymous functions

  

对于PHP 5.3 $,这种对闭包的支持被删除了,因为无法达成共识如何以理智的方式实现它。

可能的解决方法是将其重新分配给另一个变量并通过use传递:

$_this = $this;
function() use($_this) { ... }