Php функция возвращает несколько значений

Как вернуть несколько значений из функции в php?

В PHP нельзя вернуть несколько значений из функции, как это делается в некоторых других языках. return всегда возвращает только одно значение. Вы можете использовать массив для возврата нескольких значений из функции.

 function myFunction()  $value1 = 1; $value2 = 2; $value3 = 3; $value4 = 'four'; $value5 = [10, 11, 12]; return [ 'value1' => $value1, 'value2' => $value2, 'value3' => $value3, 'value4' => $value4, 'value5' => $value5, ]; > print_r(myFunction()); // => [ // => 'value1' => 1, // => 'value2' => 2, // => 'value3' => 3, // => 'value4' => 'four', // => 'value5' => [10, 11, 12], // => ]; 

Источник

Как вернуть 2 значения в PHP return?

Как сделать так, чтобы перед этим возвращенным значением здесь же возвращалось описание значения, что-то типо этого:

'vell-team-phone' => array( 'type' => 'text', 'label' => esc_html__( 'Work experience', 'vel-team' ), ),

Или просто как вставить перед возвращаемым значением тест?

riky

проще всего некоторые значения возвращать по ссылке

public function get_phone( $args, &$b ) < $b = 2; return 1; >$a = get_phone( [], &$b ); echo $a, $b; // 12

SerafimArts

// Возврат нескольких значений: function some() < return [23, 42]; >// Получение [$a, $b] = some(); \var_dump($a, $b);

Вариант 2 — Деструктуризация с ключами:

// Возврат нескольких значений: function some() < return ['a' =>23, 'b' => 42]; > // Получение ['a' => $a, 'b' => $b] = some(); \var_dump($a, $b);

Вариант 3 — Генераторы с ключами:

function some() < yield 'a' =>23; yield 'b' => 42; > foreach (some() as $key => $value) < echo $key . ':' . $value; // a:23 b:42 >

Вариант 4 — Генераторы без ключей:

function some() < yield 23; yield 42; >foreach (some() as $value) < echo $value; // 23 42 >

Вариант 5 — Генераторы с возвратом:

function some() < yield 23; return 42; >$value = some(); echo $value->current(); // 23 $value->next(); echo $value->getReturn(); // 42
class DataTransferObject < private $a; private $b; public function __construct($a, $b) < $this->a = $a; $this->b = $b; > public function getA() < return $this->a; > public function getB() < return $this->b; > > function some() < return new DataTransferObject(23, 42); >$value = some(); echo $value->getA(); // 23 echo $value->getB(); // 42

И ещё куча всяких вариантов, но мне влом придумывать уже)

Источник

Возврат значений

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием return .

Замечание:

Если конструкция return не указана, то функция вернет значение NULL .

Использование выражения return

Пример #1 Использование конструкции return

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример #2 Возврат нескольких значений в виде массива

function small_numbers ()
return array ( 0 , 1 , 2 );
>
list ( $zero , $one , $two ) = small_numbers ();
?>

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример #3 Возврат результата по ссылке

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно о ссылках.

Объявление типов возвращаемых значений

В PHP 7 добавлена возможность объявлять тип возвращаемого значения. Аналогично объявлению типов аргументов можно задать тип значения, которое будет возвращаться функцией. Типы, которые можно объявить для возвращаемых значений те же, что и для аргументов фукнций.

Режим строгой типизации также работает для объявлении типа возвращаемого значения. В обычном режиме слабой типизации возвращаемое из функции значение приводится к корректному типу. При строгой типизации возвращаемое значение должно быть заданного типа, иначе будет выброшено исключение TypeError.

Замечание:

Если переопределяется родительский метод, возвращаемое значение дочернего метода должно быть того же типа, что и родительского. Если в родительском методе не задан тип возвращаемого значения, то и дочерний метод этот тип может не объявлять.

Примеры

Пример #4 Обычное объявление типа возвращаемого значения

// Будет возвращаться значение типа float.
var_dump ( sum ( 1 , 2 ));
?>

Результат выполнения данного примера:

Пример #5 То же в режиме строгой типизации

function sum ( $a , $b ): int return $a + $b ;
>

var_dump ( sum ( 1 , 2 ));
var_dump ( sum ( 1 , 2.5 ));
?>

Результат выполнения данного примера:

int(3) Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5 Stack trace: #0 -(9): sum(1, 2.5) #1 thrown in - on line 5

Пример #6 Возврат объектов

function getC (): C return new C ;
>

Результат выполнения данного примера:

Источник

Php функция возвращает несколько значений

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Совет: активация отображения всех ошибок в PHP

При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.

Источник

Как создать PHP-функцию с множественными возвратами

Как создать PHP-функцию с множественными возвратами

  1. PHP массив для возврата нескольких значений
  2. Функция PHP с условным динамическим возвратом
  3. Комбинация массива PHP и динамического возврата условия
  4. PHP generator к yield множественным значениям

Функция PHP — это многократно используемый блок операторов, который позволяет нам иметь возврат, будучи простой строкой, массивом или JSON-объектом. Но нельзя иметь более одного возврата. Хотя вы можете использовать массив, создавать условный оператор для возврата динамической переменной или использовать генераторы (для PHP 5.5 и выше)..

PHP массив для возврата нескольких значений

funtion arrayFunc()  $var1 = "return 1";  $var2 = "return 2";   return array($var1, $var2); > 
$result = arrayFunc(); var_dump($result); //output: array(2) < [0]=>string(8) "return 1" [1]=> string(8) "return 2" > 

Функция выше может иметь несколько возвратов в виде массива, доступ к которому можно получить с помощью:

$result = arrayFunc(); echo $result[0]; // return 1  echo $result[1]; // return 2 

Начиная с версии PHP 7.1, появилась новая функция destructuring для списков. Это означает, что можно делать такие вещи:

$array = ['dog', 'cat', 'horse', 'fish']; [$q, $w, $e, $r] = $array;  echo $q; // output: dog  echo $w; // output: cat 

Применение в функции будет выглядеть следующим образом:

function descructingFunction()  return ['A', 'sample', 'descructing', 'function']; > [$a, $b, $c, $d] = descructingFunction();  echo $a; //output: A  echo $d; // output: function 

Функция PHP с условным динамическим возвратом

function condFunc($x = true)  $ret1 = "One";  $ret2 = "Two";   if($x == true)  return $ret1;  >else  return $ret2;  > > 
echo condFunc(true); //output: One 

При таком подходе нет необходимости возвращать несколько значений. Следовательно, функция будет обрабатывать условие для фильтрации нужного значения.

Комбинация массива PHP и динамического возврата условия

Немного изменив функцию, можно иметь возможность возврата массива или динамического возврата.

function combination($x = true)  $ret1 = "One";  $ret2 = "Two";   if($x === true)  return $ret2;  >  if($x == "both")  return array($ret1, $ret2);  > >  echo combination(); //output: Two  var_dump(combination("both")) //output: array(2) < [0]=>string(8) "return 1" [1]=> string(8) "return 2" > 

Использование такого подхода позволит сделать функцию более гибкой.

PHP generator к yield множественным значениям

Функция генератор не возвращает значение, она показывает столько значений, сколько необходимо. Она возвращает объект, который может быть итераризован.

function multipleValues()  yield "return 1";  yield "return 2"; >  $return = multipleValues(); foreach($return as $ret)  echo $ret; //$ret first value is "return 1" then "return 2"  > 

Note: Ключевым словом к генератору является yield . Она действует как return к оператору функции, но не останавливает выполнение и не возвращает, а предоставляет значение в цикле кода.

Внимание: При использовании yield в качестве выражения, оно должно быть окружено круглыми скобками.

Источник

Читайте также:  Техническое собеседование java junior
Оцените статью