是否有一个函数可以将getimagesize()
的所有结果作为关联数组或带有自解释名称的单个变量返回给我?我知道我可以用foreach循环来做,但必须有更好的方法。
var_dump(getimagesize('foo.png'));
的结果:
array
0 => int 500
1 => int 250
2 => int 3
3 => string 'width="500" height="250"' (length=24)
'bits' => int 8
'mime' => string 'image/png' (length=9)
函数list
因其行为而无效:
注意:list()仅适用于数值数组并采用数字 指数从0开始。
如果您使用前缀,则函数extract可以正常工作:
请注意,仅当flags为EXTR_PREFIX_SAME时才需要前缀, EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID或EXTR_PREFIX_IF_EXISTS。如果 前缀结果不是有效的变量名,不会导入 符号表。前缀自动与数组分开 用下划线字符键。
但是你会有<prefix>_0
和<prefix>_1
等变量。这不是自我解释。
答案 0 :(得分:2)
我发现的唯一方法是使用array_values()
获取纯数字索引数组并将其与list()
一起使用。
单个变量的解决方案:
list(
$width,
$height,
$mimeType,
$htmlAttr,
$bits,
$mime
) = array_values(getimagesize('foo.png'));
关联数组的解决方案:
list(
$imgInfo['width'],
$imgInfo['height'],
$imgInfo['mimeType'],
$imgInfo['htmlAttr'],
$imgInfo['bits'],
$imgInfo['mime']
) = array_values(getimagesize('foo.png'));