質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

2679閲覧

phpで競馬のオッズを想定してマイナスが出ないプログラムを簡単にかきたい

YamamotoHiroki

総合スコア57

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/10/11 09:17

編集2015/10/11 09:19

phpで競馬のオッズを想定してマイナスが出ないプログラムを簡単にかきたいです。
プログラム自体はかけたのですがどうも長いです。
流れとしては
賭けれる馬が7頭いると想定してそれぞれの倍率(オッズ)を入力します。
次にそれをブラウザで出力すると7頭それぞれに賭けるべき金額が算出されます。
競馬では100円単位で賭け金を決めれるので初めは全馬に100円賭けたとしています。

例)

馬3頭がいてそれぞれのオッズが
1番:2.0倍
2番:2.5倍
3番:8.0倍だとすれば

馬が3頭なので初めの賭け金合計(total)は300円です。

ここからfor文をまわしていきます。

1番の馬のオッズは2倍なので払戻金(back)は200円
total > backとなる場合は損するので賭け金を上げます。
賭け金を100円から200円に上げるとbackは400円
ここで賭け金を100円上げたのでtotalは300円から400円になります。
total = backとなりますのでもう一度ループしてもらいます。
これを繰り返して全部の馬に対してtotal < backとなるような賭け方を算出します。

以下プログラムです、長いですがほとんど同じことの繰り返しなのでどこをどうしたら簡単にかけるのかご教授頂きたいです。
わかりにくい文章で申し訳ありませんがよろしくお願いいたします。

php

1 2<html xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5</head> 6<body> 7<?php 8header("Content-Type: text/html; charset=UTF-8"); 9//それぞれに賭ける賭け金(100円スタート) 10 $bet = array(); 11 for($i=0;$i<7;$i++){ $bet[$i]=100; } 12 $odds = array(); 13 $odds[0]=2.1; 14 $odds[1]=3.5; 15 $odds[2]=5.7; 16 $odds[3]=6.5; 17 $odds[4]=68.6; 18 $odds[5]=70.1; 19 $odds[6]=127.2; 20//合計賭け金 21 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 22//払い戻し額 23 $back[0] = $bet[0]*$odds[0]; 24//5000回以上ループが続く場合終了する 25 for($i=0;$i < 5000 ;$i++){ 26 if($total[0]>$back[0]){ 27 $bet[0] = $bet[0] + 100; 28 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 29 $back[0] = $bet[0]*$odds[0]; 30 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 31 $back[1] = $bet[1]*$odds[1]; 32 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 33 $back[2] = $bet[2]*$odds[2]; 34 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 35 $back[3] = $bet[3]*$odds[3]; 36 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 37 $back[4] = $bet[4]*$odds[4]; 38 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 39 $back[5] = $bet[5]*$odds[5]; 40 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 41 $back[6] = $bet[6]*$odds[6]; 42 43 }elseif($total[1]>$back[1]){ 44 $bet[1] = $bet[1] + 100; 45 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 46 $back[0] = $bet[0]*$odds[0]; 47 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 48 $back[1] = $bet[1]*$odds[1]; 49 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 50 $back[2] = $bet[2]*$odds[2]; 51 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 52 $back[3] = $bet[3]*$odds[3]; 53 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 54 $back[4] = $bet[4]*$odds[4]; 55 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 56 $back[5] = $bet[5]*$odds[5]; 57 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 58 $back[6] = $bet[6]*$odds[6]; 59 }elseif($total[2]>$back[2]){ 60 $bet[2] = $bet[2] + 100; 61 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 62 $back[0] = $bet[0]*$odds[0]; 63 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 64 $back[1] = $bet[1]*$odds[1]; 65 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 66 $back[2] = $bet[2]*$odds[2]; 67 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 68 $back[3] = $bet[3]*$odds[3]; 69 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 70 $back[4] = $bet[4]*$odds[4]; 71 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 72 $back[5] = $bet[5]*$odds[5]; 73 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 74 $back[6] = $bet[6]*$odds[6]; 75 76 }elseif($total[3]>$back[3]){ 77 $bet[3] = $bet[3] + 100; 78 79 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 80 $back[0] = $bet[0]*$odds[0]; 81 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 82 $back[2] = $bet[2]*$odds[2]; 83 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 84 $back[1] = $bet[1]*$odds[1]; 85 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 86 $back[3] = $bet[3]*$odds[3]; 87 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 88 $back[4] = $bet[4]*$odds[4]; 89 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 90 $back[5] = $bet[5]*$odds[5]; 91 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 92 $back[6] = $bet[6]*$odds[6]; 93 94 }elseif($total[4]>$back[4]){ 95 $bet[4] = $bet[4] + 100; 96 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 97 $back[0] = $bet[0]*$odds[0]; 98 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 99 $back[1] = $bet[1]*$odds[1]; 100 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 101 $back[2] = $bet[2]*$odds[2]; 102 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 103 $back[3] = $bet[3]*$odds[3]; 104 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 105 $back[4] = $bet[4]*$odds[4]; 106 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 107 $back[5] = $bet[5]*$odds[5]; 108 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 109 $back[6] = $bet[6]*$odds[6]; 110 }elseif($total[5]>$back[5]){ 111 $bet[5] = $bet[5] + 100; 112 $total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 113 $back[0] = $bet[0]*$odds[0]; 114 $total[1] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 115 $back[1] = $bet[1]*$odds[1]; 116 $total[2] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 117 $back[2] = $bet[2]*$odds[2]; 118 $total[3] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 119 $back[3] = $bet[3]*$odds[3]; 120 $total[4] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 121 $back[4] = $bet[4]*$odds[4]; 122 $total[5] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 123 $back[5] = $bet[5]*$odds[5]; 124 $total[6] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6]; 125 $back[6] = $bet[6]*$odds[6]; 126 127 }

文字制限で入りきりませんでした、つづきます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

プログラミングは同じ文を書かないほど、コード量が減りバグが生まれにくいので一石二鳥です。

例えば以下のコード、何度も書いているのでコード量が増えてしまい、さらに後の修正が大変になります。

php

1// 冗長なコード 2$total[0] = $bet[0]+$bet[1]+$bet[2]+$bet[3]+$bet[4]+$bet[5]+$bet[6];

基本的な「配列の合計」などはすでに関数として用意されていることが多いです。
調べるとarray_sumという関数が見つかります。これを使えば以下のように書けます。

php

1// 標準の関数の利用 2$total[0] = array_sum($bet);

次にコードを追っていくと
$totalが配列で定義されていますが、どの段階でも同じ値を取っていることがわかります。
従って配列を見直して普通の変数にします。

php

1// 配列の見直し 2$total = array_sum($bet);

次に条件分岐の部分の中身はすべて同様の処理を行っているので、
配列のインデックスを変数にしてループで処理しましょう。

php

1// 分岐の改善 2for ($i = 1; $i <= count($odds); $i++) { 3 if($back[$i] > $total) 4 { 5 $bet[$i] = $bet[$i] + 100; 6 $total = array_sum($bet); 7 $back[$i] = $bet[$i] * $odds[$i] 8 } 9}

これを含めてすべて直しますと以下のようになります。

php

1// 配列定義 2$bet = array(); 3$odds = array(); 4$back = array(); // 記述忘れ? 5 6// 初期化 7for($i=0;$i<7;$i++){ $bet[$i]=100; } 8$odds[0]=2.1; 9$odds[1]=3.5; 10$odds[2]=5.7; 11$odds[3]=6.5; 12$odds[4]=68.6; 13$odds[5]=70.1; 14$odds[6]=127.2; 15 16$total = array_sum($bet); 17$back[0] = $bet[0]*$odds[0]; 18 19for($i=0;$i < 5000 ;$i++){ 20 for ($j = 0; $j < count($odds); $j++) { 21 if($back[$j] > $total){ 22 $bet[$j] = $bet[$j] + 100; 23 $total = array_sum($bet); 24 for($k = 0; $k < count($odds); $k++){ 25 $back[$k] = $bet[$k] * $odds[$k]; 26 } 27 } 28 } 29}

さらに私の場合は以下のように修正します。

php

1// 関数定義1 2function updateBack() 3{ 4 for($k = 0; $k < count($odds); $k++){ 5 $back[$k] = $bet[$k] * $odds[$k]; 6 } 7} 8 9// 関数定義2 10function updateTotal() 11{ 12 $total = array_sum($bet); 13} 14 15// 配列定義 16$bet = array(); 17$odds = array(); 18$back = array(); // 記述忘れ? 19 20// 初期化 21$odds[0]=2.1; 22$odds[1]=3.5; 23$odds[2]=5.7; 24$odds[3]=6.5; 25$odds[4]=68.6; 26$odds[5]=70.1; 27$odds[6]=127.2; 28for($i=0;$i<count($odds);$i++){ $bet[$i]=100; } 29 30updateTotal(); 31updateBack(); 32 33// 賭け金推定 34for($i=0;$i < 5000 ;$i++){ 35 $changedFlag = FALSE; 36 for ($j = 0; $j < count($odds); $j++) { 37 if($back[$j] > $total){ 38 $bet[$j] = $bet[$j] + 100; 39 updateTotal(); 40 updateBack(); 41 $changedFlag = TRUE; 42 break; 43 } 44 } 45 // 変更点がなかった場合ループから抜ける 46 if(!$changedFlag){ 47 break; 48 } 49}

申し訳ありませんが、動作確認はしておりません。
バグ等があればご報告ください。

投稿2015/10/11 11:40

編集2015/10/11 11:42
K_S_

総合スコア419

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YamamotoHiroki

2015/10/11 16:23

ありがとうございます、できました! ですがfunctionが使えないです。 成功コード <html xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php header("Content-Type: text/html; charset=UTF-8"); //それぞれの倍率(オッズ) $odds = array(); $odds[0]=3.7; $odds[1]=4.8; $odds[2]=4.5; $odds[3]=5.8; $odds[4]=8.5; //$odds[5]=10.9; //$odds[6]=16.0; //$odds[7]=15.9; //$odds[8]=24.1; //$odds[9]=15.1; //$odds[10]=8.2; //$odds[11]=13; //$odds[12]=19.2; //$odds[13]=16.3; //$odds[14]=19.2; //$odds[15]=16.3; //$odds[16]=19; //$odds[17]=65.8; //それぞれに賭ける賭け金(100円スタート) $bet = array(); for($i=0;$i<count($odds);$i++){ $bet[$i]=100; } //合計賭け金 $total_bet = array_sum($bet); //払い戻し額 $back = array(); $back[0] = $bet[0]*$odds[0]; //59000回以上ループが続く場合終了する for($i=0;$i < 59000 ;$i++){ for($j=0;$j<count($odds);$j++){ if($total_bet>$back[$j]){ $bet[$j] = $bet[$j] + 100; $total_bet = array_sum($bet); for($k=0;$k<count($odds);$k++){ $back[$k] = $bet[$k]*$odds[$k]; } }else{ if($i == 58999){ $end = 1; }else{ $end =0; } } } } if($end == 1 ){ for($l=1;$l<=count($odds);$l++){ echo "賭け金".$l.":".$bet[$l-1]." 払戻金".$l.":".$back[$l-1]."</br>"; } echo "合計賭け金:<text style='color:red; font-size:20px;''>".$total_bet."円</p></br>"; }else{ echo "59000回以上ループしたので終了しました</br>"; } ?> </body> </html>
YamamotoHiroki

2015/10/11 16:27

失敗コード <html xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <?php header("Content-Type: text/html; charset=UTF-8"); function updateTotal(){ $total_bet = array_sum($bet); } //それぞれの倍率(オッズ) $odds = array(); $odds[0]=3.7; $odds[1]=4.8; $odds[2]=4.5; $odds[3]=8.8; $odds[4]=18.5; $odds[5]=19.9; //$odds[6]=16.0; //$odds[7]=15.9; //$odds[8]=24.1; //$odds[9]=15.1; //$odds[10]=8.2; //$odds[11]=13; //$odds[12]=19.2; //$odds[13]=16.3; //$odds[14]=19.2; //$odds[15]=16.3; //$odds[16]=19; //$odds[17]=65.8; //それぞれに賭ける賭け金(100円スタート) $bet = array(); for($i=0;$i<count($odds);$i++){ $bet[$i]=100; } //合計賭け金 updateTotal(); //払い戻し額 $back = array(); $back[0] = $bet[0]*$odds[0]; //59000回以上ループが続く場合終了する for($i=0;$i < 59000 ;$i++){ for($j=0;$j<count($odds);$j++){ if($total_bet>$back[$j]){ $bet[$j] = $bet[$j] + 100; updateTotal(); for($k=0;$k<count($odds);$k++){ $back[$k] = $bet[$k]*$odds[$k]; } }else{ if($i == 58999){ $end = 1; }else{ $end =0; } } } } if($end == 1 ){ for($l=1;$l<=count($odds);$l++){ echo "賭け金".$l.":".$bet[$l-1]." 払戻金".$l.":".$back[$l-1]."</br>"; } echo "合計賭け金:<text style='color:red; font-size:20px;''>".$total_bet."円</p></br>"; }else{ echo "59000回以上ループしたので終了しました</br>"; } ?> </body> </html>
K_S_

2015/10/11 16:35

関数の前に変数を一度定義しておくとどうでしょうか? $total_bet = 0 $bet = array() //特にarrayは先に宣言しとかないと怒られることが多い気がします function updateTotal(){ $total_bet = array_sum($bet); }
guest

0

質問の回答ではないのですが、気になったので。

そもそものやりたいことは
「どの馬が勝っても、利益が出るような単勝の買い方を求める」ということですよね?

例えばどのようなオッズの組み合わせならそれが可能ですか?

オッズにも、「胴元が利益を得る」という前提条件があるので、難しいと思います

投稿2015/10/11 14:05

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YamamotoHiroki

2015/10/11 16:21

詳しい話になるのですが競馬にはオッズの歪みというものがありまして、胴元が利益(25%)をとっても尚絶対にプラス収支になる賭け方があります、、(出現率2%程度ですが) >そもそものやりたいことは 「どの馬が勝っても、利益が出るような単勝の買い方を求める」ということですよね? 単勝に限らず馬連も想定しています、各馬券のオッズは互いに独立ですのでオッズの歪みが発生します。 質問ではまさかこんなところを突かれると思っていなかったので簡単のため詳しい話は伏せました、すみません。 >例えばどのようなオッズの組み合わせならそれが可能ですか? このページを参考にしていただければわかるかもしれません。 http://d.hatena.ne.jp/wao_o/20130222/p6 文章が苦手なのでうまく伝わらないかもしれませんが 3頭走るとして単勝オッズ 1番:1.1倍 2番:2.3倍 3番:3.9倍 のときに 馬単のオッズが 2番軸<1番軸<3番軸 になっているときに稀に発生したります(売上が低い競馬場で)。 すいません、ご指摘ありがとうございました。汗
guest

0

出費を管理するWalletクラスと倍率・賭け金を管理するHorseクラスを定義する形で書いてみました。
PHP5.0以上で動作するはずです。

処理を役割ごとにまとめてクラス化してやれば、より分かりやすく、変更しやすいコードが書けるかも知れません。
(このコードがそうだとは言えませんが)

php

1$wallet = new Wallet(); 2 3$horses = array( 4 new Horse(2.1, $wallet->take(100)), 5 new Horse(3.5, $wallet->take(100)), 6 new Horse(5.7, $wallet->take(100)), 7 new Horse(6.5, $wallet->take(100)), 8 new Horse(68.6, $wallet->take(100)), 9 new Horse(70.1, $wallet->take(100)), 10 new Horse(127.2, $wallet->take(100)), 11); 12 13$counter = 0; 14while (!isCertainVictory($horses, $wallet)) { 15 foreach ($horses as $horse) { 16 if ($horse->getDevidend() < $wallet->getSpending()) { 17 $horse->addWager($wallet->take(100)); 18 } 19 20 if ($counter++ >= 5000) { 21 echo "Reached to max count.\n\n"; 22 break 2; 23 } 24 } 25} 26 27foreach ($horses as $horse) { 28 echo 'Odds=' . $horse->getOdds() . ', Wager=' . $horse->getWager() . ', Devidend=' . $horse->getDevidend() . "\n"; 29} 30 31echo "\n"; 32echo 'Spending=' . $wallet->getSpending() . "\n"; 33 34echo "\n"; 35echo (isCertainVictory($horses, $wallet) ? 'I win certainly!' : 'There is a possibility of losing...') . "\n"; 36 37function isCertainVictory(array $horses, Wallet $wallet) { 38 foreach ($horses as $horse) { 39 if ($horse->getDevidend() < $wallet->getSpending()) { 40 return false; 41 } 42 } 43 return true; 44} 45 46/** 47 * 馬。 48 * 倍率 (odds) と賭け金 (wager) を管理し、配当金 (devidend) を計算する。 49 */ 50class Horse { 51 52 private $odds = 0.0; 53 54 private $wager = 0; 55 56 function __construct($odds, $initialWager) { 57 $this->odds = (float) $odds; 58 $this->wager = $initialWager; 59 } 60 61 function getOdds() { 62 return $this->odds; 63 } 64 65 function addWager($wager) { 66 $this->wager += $wager; 67 } 68 69 function getWager() { 70 return $this->wager; 71 } 72 73 function getDevidend() { 74 return (int) ($this->odds * $this->wager); 75 } 76} 77 78/** 79 * 無限にお金を取り出せる魔法の財布。 80 * 出費 (spending) を管理する。 81 */ 82class Wallet { 83 84 private $spending = 0; 85 86 function take($amount) { 87 $this->spending += $amount; 88 return $amount; 89 } 90 91 function getSpending() { 92 return $this->spending; 93 } 94}

投稿2015/10/11 12:35

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

関数作れば数行で済みます。

詳しくはここを参照してください。
http://php.net/manual/ja/functions.arguments.php

http://php.net/manual/ja/functions.returning-values.php

投稿2015/10/11 10:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問