とあるシステムでチーム分け機能を作っています。
チームのHPが0で、一番少ないチームを取得しているはずなのですがなぜか$minteamが定義されていないとでます。なにか改善点がありましたらご教示願います
php
1 $this->red = array(); 2 $this->green = array(); 3 $this->blue = array(); 4 $this->yellow = array(); 5 6 /* HP 7 8 rhp,ghp,bhp,yhp = 75; 9 10 */ 11 12 public function getMinTeam(){ 13 14 if(min($this->red,$this->green,$this->blue,$this->yellow) === $this->red && $this->plugin->game->rhp !== 0){ 15 16 $minteam = "red"; 17 18 }elseif(min($this->green,$this->blue,$this->yellow) === $this->green && $this->plugin->game->ghp !== 0){ 19 20 $minteam = "green"; 21 22 }elseif(min($this->blue,$this->yellow) === $this->blue && $this->plugin->game->bhp !== 0){ 23 24 $minteam = "blue"; 25 26 }elseif($this->plugin->game->yhp !== 0){ 27 28 $minteam = "yellow"; 29 30 } 31 32 return $minteam; 33 34 }
クラスで処理しているならそこから明示してください
空の配列を比較する意味はあるのでしょうか?それともなにかデータが与えられているのでしょうか?
プラグインの仕様もよくわかりません
・minにarrayを入れた時と数値を入れた時では返って来る結果が違うが理解出来ているのか。
https://www.php.net/manual/ja/function.min.php
・前提条件は「チームのHPが0で、」なのにif文では「チームのHPが0ではない時」になっている。
・「一番少ないチームのHPが0ではない」時はどうするのか。
この辺を確認&考える必要があるかと思います。
他者がコピペで動かせる(現象確認できる)コードをご提示ください。