- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试实现 avartaco ,就像 gravatar。
为了让它在 php 版本 < 5.3 中工作
If you want to make it work on PHP less than 5.3.0, find string
array_walk($shape, function(&$coord, $index, $mult) { $coord *= $mult;}, self::SPRITE_SIZE);
and rewrite it for using create_function() instead of lambda-function.
我在同一行 array_walk 中收到错误 Parse error: syntax error, unexpected T_FUNCTION
。我的 php 版本是 5.2.17 <5.3但是我不知道用createfunction重写是什么意思?
那么我应该在该行中更改什么以使其在 php 版本 < 5.3 中工作
private function GetShape($type) {
switch($type) {
case 'side':
$shape_id = hexdec(substr($this->_hash, 22, 1)) & (sizeof($this->_shapesSide) - 1);
$shapes = $this->_shapesSide;
break;
case 'center':
$shape_id = hexdec(substr($this->_hash, 23, 1)) & (sizeof($this->_shapesCenter) - 1);
$shapes = $this->_shapesCenter;
break;
case 'corner':
$shape_id = hexdec(substr($this->_hash, 24, 1)) & (sizeof($this->_shapesCorner) - 1);
$shapes = $this->_shapesCorner;
default:
break;
}
$shape = $shapes[$shape_id];
array_walk($shape, function(&$coord, $index, $mult) { $coord *= $mult; }, self::SPRITE_SIZE);
return $shape;
}
最佳答案
Closures直到 PHP 5.3 才引入。
由于您运行的是 PHP 5.2.17,因此您需要重写 array_walk()
以使用 create_function()
(如文档所示)。
array_walk(
$shape,
create_function('&$coord, $index, $mult', '$coord *= $mult'),
self::SPRITE_SIZE
);
注意:
我压缩了函数,因为您没有使用
。忘了这是一个回调,所以参数很重要。$index
请考虑更新到至少 PHP 5.3。
关于php - create_function 而不是 lambda 函数 avartaco,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723486/
我正在尝试实现 avartaco ,就像 gravatar。 为了让它在 php 版本 _hash, 22, 1)) & (sizeof($this->_shapesSide) - 1);
我是一名优秀的程序员,十分优秀!