アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんわ。

PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。
配列は1次元で 1,2,3 の値が a という配列に格納されています。

呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。

返す際に
return $a;
としており、

$b=$obj-〉test();
で、aをbで受けようと考えております。

配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。

解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。

A 回答 (2件)

クラスでやると普通にでますけど、具体的にどうやってます?



<?PHP
class hoge{
function test(){
$a=array(1,2,3);
return $a;
}
}
$obj=new hoge;
$b=$obj->test();
print_r($b);
?>
    • good
    • 0
この回答へのお礼

早期回答ありがとうございます。

できたという情報をもとに見なおしたところ、受け取り変数名が return_box問いう名になっており これを b という名前に変更したら解決しました。

できたという情報ありがとうございました。大変助かりました。

お礼日時:2007/08/28 00:40

>配列は1次元で 1,2,3 の値が a という配列に格納されています。


どの時点で格納していますか?
もし下記のような状態ならば、期待する配列は返ってきません

<?php
class foo{
function __construct(){
$this->set_test();
}

public function set_test(){
$a = array(1,2,3);
}

public function test(){
return $a;
}
}
//enf of class

$obj = new foo();
$b = $obj->test();
?>

上記のような状態のロジックなのであれば、下記のように変えてください
<?php
class foo{

private $a = array();//配列を格納

function __construct(){
$this->set_test();
}

public function set_test(){
$this->a = array(1,2,3);
}

public function test(){
return $this->a;
}
}
//enf of class

$obj = new foo();
$b = $obj->test();
?>
としないと駄目です
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!