こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

関数(list)の戻り値を他の関数(base)の引数に渡したいんですが

関数(list)の戻り値を他の関数(base)の引数に渡したいんですが、どうすればいいでしょうか?

/****list.php****/
<?php
function list($id){
// DB接続
open();
$sql = "SELECT * FROM table WHERE id = $id";
$result = mysql_query($sql);
// 実行結果判定
if(!$result){
$res = 9;
}else{
while ($row = mysql_fetch_assoc($result)){
$moji .= $row['name'];
$moji .= $row['mail'];
}
echo $moji;
$res = 0;
}
return $res;
}
?>

/****main.php****/
<?php


list($id);

↓$err_cdにlistの戻り値を入れ、$err_msgには戻り値が0なら「正常終了」,9なら「SQLエラー」などを入れるようにしたい。
base($err_cd,$err_msg);

?>

投稿日時 - 2010-10-13 11:35:22

QNo.6246924

すぐに回答ほしいです

質問者が選んだベストアンサー

listは予約された関数ですので仮にlistaとします

function lista($id){・・・}

で、単純に
$err_cd=lista($id);
とすると戻り値が代入されますね。
そして配列でエラーメッセージのリストを用意しておいて

$err_msg_list=Array(0=>"正常終了",9=>"SQLエラー");
$err_msg=$err_msg_list($err_cd);

とすれば代入されます。ただ・・・
function base($err_cd,$err_msg){・・・};
などのようにわざわざ2要素引数を取るよりは
function base($err_cd){
$err_msg_list=Array(0=>"正常終了",9=>"SQLエラー");
$err_msg=$err_msg_list($err_cd);
};

とした方が、使い勝手がいいような気がします。
そういう意味では$err_msg_listも
function get_err_msg_list(){
return Array(0=>"正常終了",9=>"SQLエラー");
}

などまとめておく方が、いいかもしれません。

投稿日時 - 2010-10-13 12:11:27

お礼

回答ありがとうございました。

投稿日時 - 2010-10-13 15:47:10

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

<?php
$err_cd = list($id);

switch ($err_cd) {
case 0:
$err_msg = "正常終了";
break;
case 9:
$err_msg = "SQLエラー";
break;
default:
$err_msg = "";
}

base($err_cd,$err_msg);
?>

投稿日時 - 2010-10-13 12:08:44

お礼

回答ありがとうございました。

投稿日時 - 2010-10-13 15:47:35

あなたにオススメの質問