Это кажется довольно простым. Я в основном манипулирую входным текстовым файлом и пытаюсь вывести файл в определенном формате. Прежде чем я смогу это сделать, мне нужен Getter $team->getWins
, чтобы вернуть правильное значение. Формат входного файла - это имя команды, выигрыши, потери. Вот входной текстовый файл mlb_nl_2011.txt
:getter не работает после того, как конструктор показывает правильное значение
Phillies 102 60
Braves 89 73
Nationals 80 81
Mets 77 85
Marlins 72 90
Brewers 96 66
Cardinals 90 72
Reds 79 83
Pirates 72 90
Cubs 71 91
Astros 56 106
DBacks 94 68
Giants 86 76
Dodgers 82 79
Rockies 73 89
Padres 71 91
Вот Team.php
файл:
<?php
class Team {
private $name;
private $wins;
private $loss;
public function __construct($name, $wins, $loss) {
$this->name = $name;
$this->wins = $wins;
$this->loss = $loss;
echo $this->name ." ";
echo $this->wins ." ";
echo $this->loss ."\n";
}
public function getName() {
return $this->name;
}
public function getWins() {
return $this->wins;
}
public function getLosses() {
return $this->loss;
}
public function getWinPercentage() {
return $this->wins/($this->wins + $this->loss);
}
public function __toString() {
return $this->name . " (" . $this->wins . ", " . $this->loss . ")";
}
}
?>
Вот мой главный PHP файл.
<?php
include_once("Team.php");
$file_handle = fopen("mlb_nl_2011.txt", "r");
$teams = array();
$counter = 0;
while(!feof($file_handle)) {
$line_data = fgets($file_handle);
$line_data_array = explode(' ',trim($line_data));
$team = new Team($line_data_array[0],$line_data_array[1],$line_data_array[2]);
$teams[$counter] = $team;
$counter++;
}
print_r($teams);
//looks good through this point
$output_file = "mlb_nl_2011_results.txt";
$opened_file = fopen($output_file, 'a');
foreach($teams as $team) {
$win = $team->getWins();
$los = $team->getLosses();
echo $win ." ". $los."\n";
$name = $team->getName();
echo fprintf($opened_file, "%s %d\n", $name, $win_per);
}
fclose($opened_file);
?>
В тот момент, когда я делаю print_r($teams)
все значения являются правильными. Я получаю распечатку, похожее на это для каждой команды:
[15] => Team Object
(
[name:Team:private] => Padres
[wins:Team:private] => 71
[loss:Team:private] => 91
)
Но когда я печать на echo $win ." ". $los."\n";
я получаю это:
102 60
1289 73
1080 81
1377 85
872 90
1196 66
1190 72
1379 83
872 90
1171 91
856 106
1094 68
1086 76
1082 79
1173 89
1171 91
Любые идеи ??
спасибо, хороший информация. – user2296342