5

関数が起動される前に作成された配列を設定する関数があります。人口を機能させるために、関数で「グローバル」を使用しました。以下の状況では、すべてが正常に機能しています。

$parameter = 'something';  
$listOne = array();

my_function($parameter);

function my_function($para) {
     global $listeOne;
     ...some code  
     $listeOne[0] = 'john';
     $listeOne[1] = 'lugano';
}

私が望むのは、関数を呼び出すときに関数で使用されるはずの配列を渡すことです。アイデアは、次のようなことをすることです:

$parameter = 'something';  
$listOne = array();
$listTwo = array();

my_function($listOne, $parameter);
...some code
my_function($listTwo, $parameter);

function my_function($list, $para) {
     ...some code
     $list[0] = 'john';
     $list[1] = 'lugano';
}

さらに、私が読んだことによると、global を使用することはおそらく最善の方法ではありません... どこかで & 記号を使用して、その方が良いと言っている人を見ました。しかし、私はそれを取得せず、その「方法」に関する情報を見つけられません...私が明確であることを願っています。返信ありがとうございます。乾杯。マルク

4

4 に答える 4

10

それは参照と呼ばれます:

$listOne = array();

function my_function(&$list, $para) {
     ...some code
     $list[0] = 'john';
     $list[1] = 'lugano';
}
my_function($listOne, $parameter);

print_r($listOne); // array (0 => 'john', 1 => 'lugano');

これで、省略された配列が変更されます。

于 2012-04-18T10:41:05.350 に答える
2

「参照によるパラメータ」のようなものが必要かもしれませんhttp://www.php.net/manual/en/functions.arguments.php

于 2012-04-18T10:44:20.307 に答える
1

参照渡しの&手段を使用する。

例えば:

$x = '123';

function changeX(&$data){
   $data = '1';
}

echo $x; //x should print out as 1.

あなたの場合、次を使用できます。

$parameter = 'something';     
$listOne = array();   
$listTwo = array();   

my_function($listOne, $parameter);   
my_function($listTwo, $parameter);   

function my_function(&$list, $para) {   
     $list[0] = 'john';   
     $list[1] = 'lugano';   
}   
于 2012-04-18T10:43:53.897 に答える
1

次のように関数を書くことができます:

$listOne = array();
my_function($list = array())
{
array_push($list, 'john');
array_push($list, 'lugano');
return $list;
}  

$listOne = my_function($listOne);
print_r($listOne);
于 2012-04-18T10:57:12.407 に答える