Как вернуть массив из функции в PHP?

402
26 марта 2017, 06:25

Есть функция parseDesc(). В результате ее выполнения получается массив $productDesc[].

Вопрос: Как вытащить этот массив и использовать не только в самой функции?

Answer 1

Чтобы вернуть результат работы функции, необходимо использовать оператор return.

После этого можно будет присвоить результат работы функции переменной.

Пример:

function parseDesc() {
    return [];
}
$productDesc = parseDesc();
Answer 2

Уважаемый @Egor Smolyakov На ваш вопрос ответил @Ипатьев и это половина ответа. Этот ответ абсолютно верен, если результат вашей функции это генерировать массив $productDesc Но если у вас функция выполняет другую задачу, а генерация массива побочное действие, то вам скорее всего придется изменять формат выводимых данных

Пример было

function parseDesc() {
    return $result;
}

Стало

function parseDesc() {
   return ['result'=>$result,'arr'=>$productDesc];
}
$productDesc = parseDesc();
$productDesc = productDesc['arr'];

Либо использовать ссылку в функции, что чревато ошибками при повторном вызове функции

$productDesc=[]
function parseDesc() {
   &$productDesc=$a;
   return $result;
}

Но я на стадии проектировании выбираю - либо это функция выполняющая конкретно возложенное на нее обязательство, либо сущность с характерными для нее свойствами

Пример

class ParseDesc{
  protected $product_desc=[];
  public function doParse(){
    $this->product_desc=$a;
    return $result;
  }
  public function getProductDesc(){
    return $this->product_desc;
  }
}

Применение

$obj= new ParseDesc();
$parser_result=$obj->doParse();
$productDesc=$obj->getProductDesc();
READ ALSO
phpStorm отладка: Как отображать дополнительную информацию о переменных, не раскрывая их?

phpStorm отладка: Как отображать дополнительную информацию о переменных, не раскрывая их?

Всем привет! Такой вопрос, в дебагере phpStorm часто приходится просматривать большие массивы объектовПриходится при этом каждый объект раскрывать...

288
Htaccess Apache Перенаправление

Htaccess Apache Перенаправление

Хочу перенаправить те которые пытается открыть изображение прямо с URL-адреса на php страницу:

276
preg_match не работает с русскими буквами

preg_match не работает с русскими буквами

Почему данный код не выводит 1 ?

233