我需要从一个函数返回多个值,因此我已将它们添加到数组中并返回了该数组。
<?
function data(){
$a = "abc";
$b = "def";
$c = "ghi";
return array($a, $b, $c);
}
?>
我怎么能接受的价值观$a
,$b
,$c
通过调用上述功能?
Answers:
function give_array(){
$a = "abc";
$b = "def";
$c = "ghi";
return compact('a','b','c');
}
$my_array = give_array();
extract($my_array)
将数组分成变量:php.net/manual/en/function.extract.php
这是类似功能的最佳方法
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']?>
为了获得每个变量的值,您需要像对待数组一样对待函数:
function data() {
$a = "abc";
$b = "def";
$c = "ghi";
return array($a, $b, $c);
}
// Assign a variable to the array;
// I selected $dataArray (could be any name).
$dataArray = data();
list($a, $b, $c) = $dataArray;
echo $a . " ". $b . " " . $c;
//if you just need 1 variable out of 3;
list(, $b, ) = $dataArray;
echo $b;
这是我在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”方式
正如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();
我一直在寻找比我正在使用的更简单的方法,但本文未对此进行解答。但是,我的方法有效,并且我不使用任何上述方法:
function MyFunction() {
$lookyHere = array(
'value1' => array('valuehere'),
'entry2' => array('valuehere')
);
return $lookyHere;
}
我的功能没有问题。我循环读取数据以显示我的关联数据。我不知道为什么有人会建议上述方法。如果您希望将多个数组存储在一个文件中,但没有全部加载,请使用上面的我的function方法。否则,所有阵列都将加载到页面上,从而减慢您的网站速度。我想出了这段代码,将所有数组存储在一个文件中,并在需要时使用单个数组。