我试图实现avartaco,就像 gravatar 一样。
为了使它在 php 版本 < 5.3 中工作
如果你想让它在低于 5.3.0 的 PHP 上工作,找到字符串
array_walk($shape, function(&$coord, $index, $mult) { $coord *= $mult; }, self::SPRITE_SIZE);
并重写它以使用 create_function() 而不是 lambda-function。
我在同一行 array_walk 中遇到错误。我Parse error: syntax error, unexpected T_FUNCTION
的 php 版本是 5.2.17 <5.3 但我不知道用 createfunction 重写是什么意思?
那么我应该在该行中进行什么更改以使其在 php 版本 < 5.3 中工作
私有函数 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;
}