如何从一个函数分别返回多个值

时间:2019-04-04 14:26:21

标签: php oop

所以问题很简单,我需要从一个函数返回多个值,有人可以建议我怎么做吗?下面的代码:

<?php

abstract class Products
{

    protected $name;
    protected $price;

    public function __construct($name, $price)
    {
        $this->name = $name;
        $this->price = $price;
    }

    public function getName()
    {
        return $this->name;
    }

    public function getPrice()
    {
        return $this->price;
    }
}

// A new class extension

class Furniture extends Products
{

    protected $width;
    protected $height;
    protected $length;

    public function getSize()
    {
        // return $this->width;
        // return $this->height;
        // return $this->length;
        // return array($this->width, $this->height, $this->length);
    }
}

据我了解,当我返回某些东西时,它将停止该函数,所以我理解为什么我不能只返回3次。尝试返回数组失败,并显示错误消息“注意:数组到字符串的转换”。

任何人都可以让我知道如何退还所有这三个物品吗?

1 个答案:

答案 0 :(得分:1)

如果将函数更改为返回数组,如下所示:

class Furniture extends Products
{

    protected $width;
    protected $height;
    protected $length;

    public function getSize()
    {
        return [
            'width' => $this->width,
            'height' => $this->height,
            'length' => $this->length
        ];
    }
}

然后您可以像这样访问数据:

$furniture = new Furniture;
$size = $furniture->getSize();

$height = $size['height'];

通过数组返回多个数据值是很常见的事情。另一种方法是使用stdClass,在这种情况下,其结果几乎相同。