くだすれPHP(超初心 ..
[2ch|▼Menu]
727:nobodyさん
09/02/11 14:24:23
exit()ってスクリプト終了のために多用してもいいのでしょうか?
たとえばエラーチェック時にdieの代わりに自作関数呼び出して終了みたいな場合など

function return_json($flag, $data){
 if($flag == true)
  $result = $data;
 else
  $result = "ERR:".$data;
 $res = array(
  "status" => $flag,
  "result" => $result );
 print(json_encode($res));
 exit();
}

if(エラーチェック1) return_json(false,"エラー1です"); //エラーなら終了

if(エラーチェック2) return_json(false,"エラー2です"); //エラーなら終了

//最後に
return_json(true,"成功です。");

728:nobodyさん
09/02/11 14:33:34
別にいいんでは?

729:nobodyさん
09/02/11 15:13:35
関数はあくまで何かを返すだけにして、制御を握っているのは「メインのルーチン」ひとつにした方がいい。
あちこちの関数で好き勝手に処理を中断したり画面出力してたりすると、そのうち管理しきれなくなる。
同じ理由で、printするよりは文字列を返す(printは「メインのルーチン」で行なう)方がいいと思う。

俺ならreturn_json()はjsonを返すだけ(exitもprintもしない)にして
function generare_json(){
 if(isError1()){
  return return_json(false,"エラー1です");
 }
 if(isError2()){
  return return_json(false,"エラー2です");
 }
 return return_json(true,"成功です。");
}
とし、echo generate_json()を最後に呼び出す。
exit()はスクリプトの末尾のみ、出力はこの文のみになる。

730:nobodyさん
09/02/11 15:20:37
つうか、正しいjson出力とエラー出力を別の関数にするかな。
boolを渡すより、return_error_json()の方が分かりやすい。

731:nobodyさん
09/02/11 15:23:03
>>719
ヒントをサンクス。

>>723
詳しいありがとうございます。
参考にさせて頂きます。

732:nobodyさん
09/02/11 17:07:46
>>726
ああもしかして、http://〜/~user/ の部分の実ディレクトリが知りたいってこと?

733:nobodyさん
09/02/11 17:30:07
実ディレクトリでいいのかな?ローカルでいえば
/Applications/MAMP/htdocs/
となります。
実行ファイルがトップにあるわけではないので相対パスでのファイル指定より
基点からの絶対パスのほうがわかりやすいかなと。

734:724,733
09/02/11 17:31:27
>>732
アンカーわすれてたので念のため

735:nobodyさん
09/02/11 17:45:24
>>733
dirname(__FILE__) とか getcwd() とか

そういうこと?

736:nobodyさん
09/02/11 17:47:36
>>733
$_SERVER['DOCUMENT_ROOT']

737:nobodyさん
09/02/11 18:00:00
ユーザー関係ないじゃんw

738:724,733
09/02/11 19:15:46
>>735,736
$_SERVER['DOCUMENT_ROOT']で希望のパスを得ることができました。
ありがとうございました。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5362日前に更新/180 KB
担当:undef