Intereting Posts
Знак Euro не отображается на сайте Я продолжаю получать сообщение об ошибке на нашем сайте. Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 задано в … PHP Сортировка массива по дате Как получить дату (например, как 2013-06-02) в прошлом на основе входных чисел дней (например, как 230, 20 или 360 или сколько угодно дней) в PHP? mongodb: обновление элементов? Как создать динамическую добавочную переменную, используя цикл for for php? SSI включен в PHP, поскольку шаблон не работает Неустранимая ошибка: вызов функции-члена fetch_assoc () в строке Получение данных из раскрывающегося списка с множественным выбором с PHP для вставки в MySQL Можно ли включить «Уведомление: попытка получить свойство не объекта» в фатальную ошибку? CodeIgniter session set-cookie duplicated – как решить синтаксическая ошибка, неожиданный '.', ожидающий ')' Разрывы строк в контактной форме PHP dompdf не отображает изображения с сервера, а выводит из внешнего источника Функция «Пользователь вводит сообщение» …?

Возвращаемый массив функций PHP

Мне нужно вернуть несколько значений из функции, поэтому я добавил их в массив и вернул массив.

<? function data(){ $a = "abc"; $b = "def"; $c = "ghi"; return array($a, $b, $c); } ?> 

Как получить значения $a , $b , $c , вызвав указанную выше функцию?

Вы можете добавить ключи массива к своим возвращаемым значениям, а затем использовать эти клавиши для печати значений массива, как показано ниже:

 function data() { $out['a'] = "abc"; $out['b'] = "def"; $out['c'] = "ghi"; return $out; } $data = data(); echo $data['a']; echo $data['b']; echo $data['c']; 

вы можете сделать это:

 list($a, $b, $c) = data(); print "$a $b $c"; // "abc def ghi" 
 function give_array(){ $a = "abc"; $b = "def"; $c = "ghi"; return compact('a','b','c'); } $my_array = give_array(); 

http://php.net/manual/en/function.compact.php

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

 <?php ... $result = data(); $a = $result[0]; $b = $result[1]; $c = $result[2]; 

Или вы можете использовать функцию list() , как рекомендует @fredrik, сделать то же самое в строке.

 $array = data(); print_r($array); 

Из PHP 5.4 вы можете воспользоваться разыменованием массивов и сделать что-то вроде этого:

 <? function data() { $retr_arr["a"] = "abc"; $retr_arr["b"] = "def"; $retr_arr["c"] = "ghi"; return $retr_arr; } $a = data()["a"]; //$a = "abc" $b = data()["b"]; //$b = "def" $c = data()["c"]; //$c = "ghi" ?> 

вот лучший способ в подобной функции

  function cart_stats($cart_id){ $sql = "select sum(price) sum_bids, count(*) total_bids from carts_bids where cart_id = '$cart_id'"; $rs = mysql_query($sql); $row = mysql_fetch_object($rs); $total_bids = $row->total_bids; $sum_bids = $row->sum_bids; $avarage = $sum_bids/$total_bids; $array["total_bids"] = "$total_bids"; $array["avarage"] = " $avarage"; return $array; } 

и вы получите данные массива, подобные этому

 $data = cart_stats($_GET['id']); <?=$data['total_bids']?> 
 <?php function demo($val,$val1){ return $arr=array("value"=>$val,"value1"=>$val1); } $arr_rec=demo(25,30); echo $arr_rec["value"]; echo $arr_rec["value1"]; ?> 

Это то, что я сделал в yii framewok:

 public function servicesQuery($section){ $data = Yii::app()->db->createCommand() ->select('*') ->from('services') ->where("section='$section'") ->queryAll(); return $data; } 

затем внутри моего файла вида:

  <?php $consultation = $this->servicesQuery("consultation"); ?> ?> <?php foreach($consultation as $consul): ?> <span class="text-1"><?php echo $consul['content']; ?></span> <?php endforeach;?> 

То, что я делаю, захватывает кретиновую часть таблицы, которую я выбрал. должен работать только за php минус путь «Yii» для db

Основная проблема связана с доступом к данным в массиве, как указывает Felix Kling в первом ответе.

В следующем коде я получил доступ к значениям массива с помощью конструкций print и echo.

 function data() { $a = "abc"; $b = "def"; $c = "ghi"; $array = array($a, $b, $c); print_r($array);//outputs the key/value pair echo "<br>"; echo $array[0].$array[1].$array[2];//outputs a concatenation of the values } data(); 

Я думаю, что лучший способ сделать это – создать глобальный массив var. Затем сделайте все, что вы хотите, внутри данных функции, передав его как ссылку. Не нужно ничего возвращать.

 $array = array("white", "black", "yellow"); echo $array[0]; //this echo white data($array); function data(&$passArray){ //<<notice & $passArray[0] = "orange"; } echo $array[0]; //this now echo orange