我最近在5.3服务器上遇到了一个不寻常的问题(是的它已经过时了,但是我不应该更新它)。
string sitem = "";
sitem = listbox1.SelectedItem.ToString();
listbox2.SelectedItem = sitem
中的$this->encodings
部分导致了致命错误:
"当不在对象上下文中时使用$ this"
当我尝试时它在5.5上工作正常 - 出于什么原因它会在旧版本的PHP中失败?是mb_detect_encoding
回调会破坏它吗?
array_map
答案 0 :(得分:2)
这在PHP手册中有描述:
Version Description 5.4.0 $this can be used in anonymous functions.
对于PHP 5.3 $,这种对闭包的支持被删除了,因为无法达成共识如何以理智的方式实现它。
可能的解决方法是将其重新分配给另一个变量并通过use
传递:
$_this = $this;
function() use($_this) { ... }