Невозможно получить несколько переменных из функции - PullRequest
0 голосов
/ 20 января 2012

Привет. Я пытаюсь использовать функцию list (), чтобы получить две переменные из функции. Функция возвращает переменные to в массиве.

function thumb_dimensions($case, $image_width, $image_height){
    switch($case){
        case 1:
            $thumb_width    =   100;
            $thumb_height   =   100;
        break;
        case 2:
            $thumb_height   =   100;
            $ratio          =   $thumb_height / $image_height;
            $thumb_width    =   round( $image_width * $ratio );
        break;
        case 3:
            $thumb_width    =   100;
            $ratio          =   $thumb_width / $image_width;
            $thumb_height   =   round($image_height * $ratio);
        break;


        return array($thumb_width, $thumb_height);
    }


}

$case = 3;
list($thumb_width, $thumb_height) = thumb_dimensions($case, $image_width, $image_height);

1 Ответ

5 голосов
/ 20 января 2012

Оператор return находится внутри коммутатора, но после break, поэтому он не выполняется.Ваша функция ничего не возвращает, и list завершается ошибкой.

Переместите оператор return из коммутатора, и все должно быть в порядке.

...