- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:functionの中で条件分岐が効かない)
functionの中で条件分岐が効かない
このQ&Aのポイント
- JpGraphで、HTML検索フォームからPOSTされてきた変数 $numの値に応じて縦軸の小数点以下の位数を調整したいが、うまくいかない。
- (テスト1) 下記サンプルをそのまま実行 (テスト2) num=0にする(5行目→コメントに;4行目コメント→外す) (テスト3) 4、5行目の両方をコメントにする →結果全て同じで、縦軸は少数点第3位(0.000~8.000)まで表示されます。 (テスト4) 4行目~15行目および22行目をコメントにする。 →縦軸は、少数点第1位まで表示されます(0.0~8.0)。 JpGraphに関係なく、何か基本的なことでつまづいている気がいたしますが。
- <?php /*01*/ include ("./JpGraph/jpgraph.php"); /*02*/ include ("./JpGraph/jpgraph_scatter.php"); /*03*/ /*04*/ //$num = 0; /*05*/ $num = 1; /*06*/ /*07*/ function yLabelFormat($aLabel) { /*08*/ if ($num == 0){ /*09*/ return number_format($aLabel,3); /*10*/ } elseif ($num == 1){ /*11*/ return number_format($aLabel,2); /*12*/ } else { /*13*/ return number_format($aLabel,1); /*14*/ } /*15*/ } /*16*/ /*17*/ $datax = array(3.58,8.61,9.32,4.29,8.57,6.27,6.72); /*18*/ $datay = array(2.78,5.68,6.12,0.63,7.27,4.43,3.83); /*19*/ $graph = new Graph(500,500,"auto"); /*20*/ $graph->SetScale("linlin"); /*21*/ $sp1 = new ScatterPlot($datay,$datax); /*22*/ $graph->yaxis->SetLabelFormatCallback('yLabelFormat'); /*23*/ $graph->Add($sp1); /*24*/ $graph->Stroke(); ?>
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
× yLabelFormat($aLabel) { ○ yLabelFormat($aLabel,$num) { または function yLabelFormat($aLabel) { global $num; 前者の方がお勧めです。
お礼
kusukusuさん、ご教示ありがとうございました。 こういう風にするのですね、勉強になりました。 globalなどについてもよく調べてみます。 大変助かりました。