Vatrush
@Vatrush

Как избавиться от переменных при вызове методов?

Вот мой класс (да велосипед и все ваши остальные термины):
class Picture
{
    public $size = 500000;
    public $type = array("image/jpg","image/png","image/jpeg");

    public function getPic($file){
        if($file['image']['size'] <= $this -> size){
            return $file;
        }
        else {
            return 'Размер изображения превышен';
        }
    }
    public function getType($file){
        if(in_array($file['image']['type'],$this -> type)){
            return $file;
        }
        else {
            return 'Неверный тип изображения';
        }
    }
}

Вот так я вызываю методы:
$image = new Picture();
$getPic = $image -> getPic($_FILES);
$type = $image -> getType($getPic);
$name = 'img';
var_dump( $image -> setName($type, $name));

Все что я вызываю, это полнейший бред, ибо это будет все в переменных и передаваться из одного метода в другой и тд.
Мне нужно задать в свойствах класса $_FILE? Судя по всему нет, т.к IDE ругает меня. Подскажите, как сделать правильно.
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
@ipokos
а в чем проблема передавать переменные в метод?
Как избавиться от переменных при вызове методов?

сетать их в конструкторе.

class MyClass{

protected $imgObj;

    public function __construct(){
        $this->imgObj = new Image();
    }

    public function otherFunction(){
        $name = $this->imgObj->getName();
    }
}

Но это плохой способ, т.к. таким образом жестко делается привязка и может понадобиться заново конфижить объект который пришел .

Лучше будет такой вариант:
public function __construct(Image $image){
        $this->imgObj = $image;
    }

нужный объект приходит уже в класс
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fStrange
@fStrange
Сохранять в свойствах класса $file
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы