出乎意料的' ['当使用getimagesize()时

时间:2015-01-09 13:17:32

标签: php codeigniter syntax getimagesize

78我有一些代码,曾经工作,但现在传递错误:

解析错误:语法错误,意外情况' ['在第47行的(...)/ utility_helper.php

我一遍又一遍地检查所有括号和类似物都已关闭,我找不到任何看起来不正确的东西。包括第47行的功能是:

/*  image_ratio($img)
 *  Returns one (1) if the image is landscape ratio (width > height) or reutrns 
 *  zero (0) otherwise 
 */
function image_ratio($img) {
    $imgWidth  = getimagesize($img)[0]; // <-- Line 47
    $imgHeight = getimagesize($img)[1];

    if ($imgWidth/$imgHeight > 1) {
        return 1;
    } else {
        return 0;
    }
}

我到底做错了什么?

更新

将链接47-48更改为以下内容(旧的PHP版本无法处理上述语法):

$imgSize   = getimagesize($img);
$imgWidth  = $imgSize[0];
$imgHeight = $imgSize[1];

4 个答案:

答案 0 :(得分:2)

正如本评论中所述,PHP&lt; 5.4不支持函数的数组解除引用。您应该这样做或更新您的PHP版本:

function image_ratio($img) {
    $imgSize  = getimagesize($img); // <-- Line 47

    $imgWidth = $imgSize[0];
    $imgHeight = $imgSize[1];

    if (($imgWidth/$imgHeight) > 1) {
        return 1;
    } else {
        return 0;
    }
}

答案 1 :(得分:2)

创建一个数组,然后从数组中生成变量:

$imageSize = getimagesize($img);
$imgWidth  = $imageSize[0];
$imgHeight = $imageSize[1];

答案 2 :(得分:1)

对于PHP版本&lt; 5.4不支持函数数组解引用,您可以使用list()将数组元素分配给(单个)变量。

list($width, $height) = getimagesize('...');

答案 3 :(得分:0)

尝试:

function image_ratio($img) {
    $imgSize = getimagesize($img);
    $imgWidth  = $imgSize[0];
    $imgHeight = $imgSize[1];

    if ($imgWidth/$imgHeight > 1) {
        return 1;
    } else {
        return 0;
    }
}