试图从函数返回两个变量

时间:2012-01-17 20:57:06

标签: php arrays function

您好我正在尝试使用以下代码从函数返回两个变量:

$img_width = 4000;
$img_height = 3000;
function change_large_image_size($img_width, $img_height)
{
    if(($width == $height) && ($width > 790) && ($height > 790)){$case = 1;}
    if($width < $height && ($width > 790) && ($height > 790)){$case = 2;}
    if($width > $height && ($width > 790) && ($height > 790)){$case = 3;}

    switch($case)
    {
        case 1:
            $new_width = 790;
            $new_height = 790;

        break;

        case 2:
            $new_height = 790;
            $ratio = $new_height / $height;
            $new_width = round($width * $ratio);
        break;

        case 3:
            $new_width = 790;
            $ratio = $new_width / $width;
            $new_height = round($height * $ratio);

        break;

        default:
            $new_width = $img_width;
            $new_height = $img_height;
        break;

    }

    return array($new_width, $new_height);
}
list($new_width, $new_height) = change_large_image_size($img_width, $img_height);

        echo '<p>' . $img_width . $img_height . '<br>' . $new_width . $new_height . '</p>';

解决了我遇到的最初问题,但有一个新问题 由于某种原因,该函数不断抛出交换机中的默认情况。

2 个答案:

答案 0 :(得分:0)

制作两个功能。一个用于高度宽度

答案 1 :(得分:0)

显然,您的三个条件都不成立,因此$case最终会在null语句中评估为switch,并且会采用默认分支。