@stclaire

Как в php присвоить переменной значение объекта, сформированного функцией?

Даже не знаю, какой сложности вопрос, потому что не очень хорошо разбираюсь в php, но задачу решить нужно.
Что имеется: функция, которая создает рандомные объекты трех классов с рандомными значениями. Детали не особо важны, но выглядит она так (до этого естественно созданы сами классы):

function randomFigureSquare()
	{
		$randomFigure = rand(1, 3); {
		switch ($randomFigure) {
			case 1:
				$rect = new Rectangle;
				$rect->height=rand(1, 100); //установила 100 чтобы числа не были слишком большими
				$rect->width=rand(1, 100);
				//print_r($rect); //если нужно посмотреть, какой элемент был создан
				
				break;
			case 2:
				$cir = new Circle;
				$cir->radius=rand(1, 100);
				//print_r($cir);
				
				break;
			case 3:
				$trian = new Triangle;
				$trian->height=rand(1, 100);
				$trian->base=rand(1, 100);
				//print_r($trian);
				
				break;
		}
		}
	}


Что нужно: передать сформированный объект в переменную, чтобы позднее на ней использовать serialize() и unserialize()

В теории я хотела сделать это как-то так, но оно не передается и не работает:

$randomFigureData = randomFigureSquare();

$compressed = serialize($randomFigureData);
file_put_contents("objects.txt", $compressed);

$data = file_get_contents("objects.txt");
$dataUncompressed = unserialize($data);


Буду рада любой помощи.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@Mellorn
Вы же ничего не возвращаете из функции, вот оно ничего и не работает.
После создания нужного объекта необходимо вернуть его из функции, используя return.
Я бы эту функцию вообще немного переписал, но это уже другой вопрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
LAPTOP.RU Москва
от 150 000 до 190 000 ₽
LAPTOP.RU Москва
от 130 000 до 170 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
07 мар. 2021, в 03:18
1500 руб./за проект
06 мар. 2021, в 22:58
70000 руб./за проект
06 мар. 2021, в 22:36
10000 руб./за проект