関数から複数の値を返す必要があるため、それらを配列に追加し、配列を返しました。
<?
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();
データ関数は配列を返しているため、通常は配列の要素にアクセスするのと同じ方法で関数の結果にアクセスできます。
<?php
...
$result = data();
$a = $result[0];
$b = $result[1];
$c = $result[2];
または、@ fredrikが推奨するように、list()
関数を使用して、同じことを1行で行うこともできます。
$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"
?>
<?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"];
?>
各変数の値を取得するには、関数を配列と同様に扱う必要があります。
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;
これは同様の機能の最良の方法です
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']?>
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 data() {
// your code
return $array;
}
$var = data();
foreach($var as $value) {
echo $value;
}
これは私が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からdbの「Yii」方法を除いたもので動作するはずです
$data = data();
$a = $data[0];
$b = $data[1];
$c = $data[2];
それを行う最良の方法は、グローバル変数配列を作成することだと思います。次に、参照として渡すことにより、関数データ内で必要な処理を実行します。何も返す必要もありません。
$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