PHP对象为类方法

时间:2017-11-19 19:35:15

标签: php oop

我在类保存

中使用对象图像的类 FieldFile
namespace wti\Model;
use wti\Image;

class FieldFile
{
    public function save(Image $image, array $files): void
    {...}
}

但是当我在其他类中使用此方法时:

namespace wti;
use wti\Image;
use wti\Model\FieldFile;

    class MainWI
    {
        public function load()
        {
            $loader = new FieldFile();
            $loader->save($_FILES);
            // or $loader->save(Image, $_FILES);

        }
    }

我收到错误:致命错误:未捕获TypeError:参数1传递给wti \ Model \ FieldFile :: save()必须是wti \ Image的实例

帮帮我,我的代码错了?

P.S。图像是abstarct类。

2 个答案:

答案 0 :(得分:1)

你不需要在Files参数之前发送一个Image参数:

$loader->save($Image, $_FILES);

或者也改变了保存方法:

save(array $files)

并在保存中实例化图像。

答案 1 :(得分:0)

您没有在FieldFile类中发送Image实例来保存功能 看看下面的代码。

namespace wti\Model;
use wti\Image;

class FieldFile
{
   public function save(Image $image, array $files): void
   {...}
}

namespace wti;
use wti\Image;
use wti\Model\FieldFile;

class MainWI
{
    public function load()
    {
        // here you should create the image instance like
        $image = new Image();
        $loader = new FieldFile();
        //$loader->save($_FILES);
        $loader->save($image, $_FILES);

    }
}